Как реализовать ES6 Spread Синтаксис на угловой 6 - PullRequest
1 голос
/ 15 мая 2019

Я использую Angular CLI с угловой версией 6.Я столкнулся с проблемой реализации синтаксиса распространения.

здесь приведен пример кода,

...
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","target": "es6" на tsconfig.json

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Тогда вам на самом деле не нужно получать три параметра в 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();
0 голосов
/ 15 мая 2019

lol, здесь же проверьте это:

Тип TypeScript не работает с оператором распространения

Также я нашел способ сделать это без оператора распространения, есть способ использовать Object.assign

как показано в ссылке выше, я нашел другой способ, просто используйте JSON.stringify, а затем снова JSON.parse, это создаст новый экземпляр.

...