web-dev-qa-db-ja.com

TypeScriptで引数として配列を渡す

私は2つの方法があります:

_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)

それで、_m1_で_m2_を呼び出すときに、argsを引数として渡す方法は?

32
langtu

Function.prototype.apply を使用します。

T.m1.apply(this, args);

ここで、Tはm1を囲むクラスです。

16
user703016

実際には、...メソッドを呼び出すときに再び動作します。

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);
}
104
Rick Love