在TypeScript中将数组作为参数传递

时间:2013-12-07 15:33:04

标签: arrays typescript arguments

我有两种方法:

static m1(...args: any[]) {
    //using args as array ...
}

static m2(str: string, ...args: any[]){
    //do something
    //....

    //call to m1
    m1(args);
}

m1(1,2,3)的调用按预期工作。但是,来电m2("abc",1,2,3)会传递给m1([1,2,3]),而不是预期:m1(1,2,3)

那么,在args中调用m1时如何将m2作为参数传递?

2 个答案:

答案 0 :(得分:98)

实际上,在调用方法时再次使用...将起作用。

它会在javascript中为您生成应用调用。

static m1(...args: any[]) {
    //using args as array ...
}

static m2(str: string, ...args: any[]){
    //do something
    //....

    //call to m1

    // m1(args);
    // BECOMES
    m1(...args);
}

答案 1 :(得分:15)

使用Function.prototype.apply

T.m1.apply(this, args);

其中T是m1的封闭类。