function foo(x:number, y:number, z:number) { console.log(x,y,z); } var args:number[] = [0, 1, 2]; foo(...args);
Why am i getting getting this error in Typescript Playground???
Supplied parameters donot match any signature of call target.
So there is a little clause you may have missed:
Type checking requires spread elements to match up with a rest parameter.
But you can use a type assertion to go dynamic... and it will convert back to ES5 / ES3 for you:
function foo(x:number, y:number, z:number) { console.log(x,y,z); } var args:number[] = [0, 1, 2]; (<any>foo)(...args);
This results in the same apply
function call that you'd expect:
function foo(x, y, z) { console.log(x, y, z); } var args = [0, 1, 2]; foo.apply(void 0, args);
The alternative is that it all works just as you expect if the function accepts a rest parameter.
function foo(...x: number[]) { console.log(JSON.stringify(x)); } var args:number[] = [0, 1, 2]; foo(...args);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With