Передача массива в качестве аргументов в TypeScript

У меня есть два метода:

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?

Ответы

Ответ 1

Используйте Function.prototype.apply:

T.m1.apply(this, args);

Где T - класс включения m1.

Ответ 2

Собственно, использование ... снова при вызове метода будет работать.

Он генерирует вызов приложения для вас в 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);
}