Название фичи: Остаточные параметры
Описание:
Неограниченное число необязательных (типизированных) параметров. При передаче аргументов для остаточных параметров их можно передать столько, сколько угодно; а можно и вообще ничего не передавать.
Аналог в c# / js: arguments
Решаемая проблема:
Работа с несколькими параметрами, рассматривая их как группу; неизвестно, сколько параметров будет принимать функция.
Пример возникновения:
Неизвестно, сколько типизированных параметров будет принимать функция.
Как решилась проблема:
Передача гибкого количества параметров в качестве группы.
Синтаксис:
function example(firstArg: number, ...restArgs: string[]){
...
}
Перекомпилированный в JavaScript код:
function example(firstArg) {
var restArgs = [];
for (var _i = 1; _i < arguments.length; _i++) {
restArgs[_i - 1] = arguments[_i];
}
}