我正在使用带有angular 6版本的Angular CLI。我在实施传播语法时遇到问题。
这是代码示例,
...
baseFunction(): void {
const params = [a, b, c];
const output = this.spreadFunction(...params);
console.log(output);
}
spreadFunction(attribute1, attribute2, attribute3 ): string {
...
return 'anything';
}
错误消息:预期有3个参数,但有0或更多。
注意:
没有任何帮助更新
"target": "es5"
到tsconfig.json上的"target": "es6"
先谢谢了。
答案 0 :(得分:0)
大声笑,在这里同样检查一下:
TypeScript type not working with spread operator
另外,我确实找到了一种无需散布运算符的方法,有一种使用Object.assign的方法
如上面链接中的所示,我找到了另一种方法,只需使用JSON.stringify然后再使用JSON.parse,这将创建一个新实例。
答案 1 :(得分:0)
然后,您实际上不需要在spreadFunction
中获得三个参数,只需在其中使用一个参数即可:-
spreadFunction(...params): string {
// code here
// it will output the array passed at the time of calling the function
console.log(params)
// return 'anything';
}
请参见下面的代码段(尽管并非完全是打字稿)。
function baseFunction() {
const params = ['a', 'b', 'c'];
const output = spreadFunction(...params);
}
function spreadFunction(...params) {
// code here
// console.log(params);
const [attribute1, attribute2, attribute3] = params;
console.log(attribute1);
console.log(attribute2);
console.log(attribute3);
}
// do action here
baseFunction();