У меня есть этот пример функции:
const spreadingArray(arg1, arg2){
return arg1 + arg2;
}
const numbers = [4,5];
spreadArray(...numbers); // return 9
spreadArray.apply(this, numbers); // return 9
spreadArray(4, 5); // return 9
Эти три примера функции должны возвращать один и тот же результат. Но у меня ошибка при запуске ng serve
:
TS2556: ожидается 2 аргумента, но получено 0 или более.
Если я комментирую первый spreadArray(...numbers)
и запускаю ng serve
, он прекрасно компилируется, я снова удаляю комментарий, и он автоматически перекомпилируется с ошибкой, но он уже скомпилирован, поэтому он продолжает работать, и код работает. Это заставляет меня думать, что это синтаксическая ошибка, потому что в конце angular знает, как скомпилировать в es5 wish в этом случае .apply(this, numbers)
.
Примечание: проблема здесь не в том, почему я должен использовать оператор распространения, а в том, почему TypeScript не понимает этого. Я хочу использовать его, потому что это просто Javascript ES6.
Я использую @ angular / cli 6.1.5, @angular 6.1.4 и пробовал использовать узлы 8.10 и 9.11 и машинописный текст 2.7.2 и 2.9.2.
ОБНОВЛЕНИЕ: реальный пример этой ...
функции:
введите описание изображения здесь