TypeScript: типы для вариационных функций

Возможный дубликат:
аргументы функции с открытым концом TypeScript

Есть ли приемлемая сигнатура типа для вариативных функций? Пример:

function sum () {
  var sum = 0;
  for (var i = 0; i < arguments.length; i++) {
    sum += arguments[i];
  }
  return sum;
};

console.log(sum(1, 2, 3, 4, 5));

дает мне ошибку компиляции:

foo.ts(9,12): Supplied parameters do not match any signature of call target

Ответы

Ответ 1

В TypeScript вы можете использовать "..." для достижения вышеуказанного шаблона:

function sum (...numbers: number[]) {
  var sum = 0;
  for (var i = 0; i <  numbers.length; i++) {
    sum += numbers[i];
  }
  return sum;
};

Это должно позаботиться о вашей ошибке.