36

可能重复:
带有 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
4

1 回答 1

49

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

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

这应该可以解决您的错误。

于 2012-10-02T22:28:59.517 回答