Videregivelse af 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);
}
Kaldet til m1(1,2,3) virker som forventet. Dog vil kaldet m2("abc",1,2,3) blive videreført til m1([1,2,3]), ikke som forventet: m1(1,2,3).
Så, hvordan sender man args som argumenter, når man kalder m1 i m2?
Svar #1
Faktisk vil det at bruge ... igen, når man kalder metoden, fungere.
Det genererer apply-kaldet for dig 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
Brug Function.prototype.apply:
T.m1.apply(this, args);
Hvor T er den omsluttende klasse for m1.
