概要: このチュートリアルでは、関数で TypeScript オプションパラメーターを使用する方法を学びます。
JavaScript では、関数がパラメーターを指定していても、引数を渡さずに呼び出すことができます。したがって、JavaScript はデフォルトでオプションパラメーターをサポートします。
TypeScript では、コンパイラはすべての関数呼び出しをチェックし、次の場合にはエラーを発行します。
- 引数の数が、関数で指定されたパラメーターの数と異なる場合。
- または引数の型が関数パラメーターの型と互換性がない場合。
コンパイラは渡される引数を徹底的にチェックするため、引数を省略したときにコンパイラにエラーを発行しないように指示するには、オプションパラメーターに注釈を付ける必要があります。
関数のパラメーターをオプションにするには、パラメーター名の後に ?
を使用します。たとえば
function multiply(a: number, b: number, c?: number): number {
if (typeof c !== 'undefined') {
return a * b * c;
}
return a * b;
}
Code language: JavaScript (javascript)
仕組み
- 最初に、
c
パラメーターの後に?
を使用します。 - 次に、
typeof c !== 'undefined'
式を使用して、引数が関数に渡されたかどうかを確認します。
if(c)
式を使用して引数が初期化されていないかどうかをチェックすると、空の文字列やゼロが undefined
として扱われることに注意してください。
オプションパラメーターは、パラメーターリスト内の必須パラメーターの後に表示する必要があります。
たとえば、b
パラメーターをオプションにして、c
パラメーターを必須にすると、TypeScript コンパイラはエラーを発行します。
function multiply(a: number, b?: number, c: number): number {
if (typeof c !== 'undefined') {
return a * b * c;
}
return a * b;
}
Code language: JavaScript (javascript)
エラー
error TS1016: A required parameter cannot follow an optional parameter.
まとめ
parameter?: type
構文を使用してパラメーターをオプションにします。typeof(parameter) !== 'undefined'
式を使用して、パラメーターが初期化されているかどうかを確認します。
このチュートリアルは役に立ちましたか?