如何在angular 6上实现ES6 Spread语法

时间:2019-05-15 11:18:12

标签: angular ecmascript-6 syntax spread

我正在使用带有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"

先谢谢了。

2 个答案:

答案 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';
}

请参见use of spread operator

请参见下面的代码段(尽管并非完全是打字稿)。

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();