IMO, одна из основных проблем TypeScript - поддерживать существующий код ванильного JavaScript. Это впечатление, которое я имел на первый взгляд. Взгляните на следующую функциональность JavaScript, которая абсолютно корректна:
Примечание. Я не говорю, что мне нравится этот подход. Я просто говорю, что это действительный код JavaScript.
function sum(numbers) {
var agregatedNumber = 0;
for(var i = 0; i < arguments.length; i++) {
agregatedNumber += arguments[i];
}
return agregatedNumber;
}
Итак, мы потребляем эту функцию с любым числом аргументов:
console.log(sum(1, 5, 10, 15, 20));
Однако, когда я пробую это с TypeScript Playground, он дает ошибки времени компиляции.
Я предполагаю, что это ошибка. Предположим, что у нас нет проблем с совместимостью. Тогда существует ли способ написать этот тип функций с открытым аргументом? Например, params
присутствует в С#?