36

Possible Duplicate:
open-ended function arguments with TypeScript

Is there any acceptable type signature for variadic functions? Example:

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));

gives me compilation error:

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 に答える