TypeScript:可变函数的类型

时间:2012-10-02 22:04:58

标签: typescript

  

可能重复:
  open-ended function arguments with 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 个答案:

答案 0 :(得分:30)

在TypeScript中,您可以使用“...”来实现上述模式:

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

这应该照顾你的错误。