File: vararg.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (89 lines) | stat: -rw-r--r-- 2,430 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//// [vararg.ts]
module M {
    export class C {
        public f(x:string,...rest:number[]) {
            var sum=0;
            for (var i=0;i<rest.length;i++) {
                sum+=rest[i];
            }
            result+=(x+": "+sum);
            return result;
        }

        public fnope(x:string,...rest:number) {
    
        }

        public fonly(...rest:string[]) {
            builder="";
            for (var i=0;i<rest.length;i++) {
                builder+=rest[i];
            }
            return builder;
        }
    }
}

var x=new M.C();
var result="";
result+=x.f(x,3,3); // bad first param
result+=x.f(3,"hello",3); // bad second param
result+=x.f("hello",3,3,3,3,3); // ok
result+=x.f("hello"); // ok varargs length 0
result+=x.fonly(3); // ok conversion
result+=x.fonly(x); // bad param
result+=x.fonly("a"); // ok 
result+=x.fonly("a","b","c","d"); //ok 




//// [vararg.js]
var M;
(function (M) {
    var C = /** @class */ (function () {
        function C() {
        }
        C.prototype.f = function (x) {
            var rest = [];
            for (var _i = 1; _i < arguments.length; _i++) {
                rest[_i - 1] = arguments[_i];
            }
            var sum = 0;
            for (var i = 0; i < rest.length; i++) {
                sum += rest[i];
            }
            result += (x + ": " + sum);
            return result;
        };
        C.prototype.fnope = function (x) {
            var rest = [];
            for (var _i = 1; _i < arguments.length; _i++) {
                rest[_i - 1] = arguments[_i];
            }
        };
        C.prototype.fonly = function () {
            var rest = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                rest[_i] = arguments[_i];
            }
            builder = "";
            for (var i = 0; i < rest.length; i++) {
                builder += rest[i];
            }
            return builder;
        };
        return C;
    }());
    M.C = C;
})(M || (M = {}));
var x = new M.C();
var result = "";
result += x.f(x, 3, 3); // bad first param
result += x.f(3, "hello", 3); // bad second param
result += x.f("hello", 3, 3, 3, 3, 3); // ok
result += x.f("hello"); // ok varargs length 0
result += x.fonly(3); // ok conversion
result += x.fonly(x); // bad param
result += x.fonly("a"); // ok 
result += x.fonly("a", "b", "c", "d"); //ok