TypeScript の関数の引数には、次のような拡張機能が提供されています。
関数の引数名の後に ? を付けることによって、引数をオプションにすることができます。
function foo(x?: string): string { return "Hello, " + (x === undefined ? "TypeScript" : x); } var result1: string = foo("TypeScript"); var result2: string = foo(); // 引数が無くてもコンパイルエラーにならない
関数の引数に初期値を指定することができます。
function foo(x: string = "TypeScript"): string { return "Hello, " + x; } var result1: string = foo("TypeScript"); var result2: string = foo(); // foo("TypeScript") と同等
関数の引数名の前に ... を付けることによって、引数を可変長にすることができます。可変長の引数は関数内で配列として取得します。
function foo(... x: number[]): number { var sum: number = 0; for (var i: number = 0; i < x.length; i++) { sum += x[i]; } return sum; } var result: number = foo(1, 2, 3, 4);
関数の引数は、通常の必須引数、オプション引数(デフォルト引数)、rest 引数の順に指定します。