Å sende en array som argumenter i TypeScript
Jeg har to metoder:
static m1(...args: any[]) {
//using args as array ...
}
static m2(str: string, ...args: any[]){
//do something
//....
//call to m1
m1(args);
}
Kallet til m1(1,2,3) fungerer som forventet. Imidlertid vil kallet m2("abc",1,2,3) bli videreformidlet til m1([1,2,3]), ikke som forventet: m1(1,2,3).
Så, hvordan kan man sende args som argumenter når man kaller m1 i m2?
Svar #1
Egentlig vil det å bruke ... igjen når man kaller metoden fungere.
Den genererer apply-kallet for deg i 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);
}
Svar #2
Bruk Function.prototype.apply:
T.m1.apply(this, args);
Hvor T er den omsluttende klassen til m1.
