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