メソッドや関数の引数を省略可能にする
TypeScriptでメソッドや関数の引数を省略可能にして定義する方法です。
方法としては引数の後ろに「?」をつけるか、「=」を使ってデフォルト値を設定するかのどちらかになります。
目次
- コード(TypeScript)
- コード(JavaScript)
- 参考リンク
コード(TypeScript)
方法① 「?」を使う
function foo(age?: number) {
console.log(age);
}
方法② デフォルトの値を設定
function foo2(age: number = 99) {
console.log(age);
}
パラメーターをセットしなかった場合の引数の値は、方法①ではundefinedになりますが、方法②の場合は99になります。
省略可能な引数の後ろに必須のパラメーターを定義するとエラーになります。
なお、以下の書き方では省略可能な引数としては扱われません。
function foo3(age: number | null | undefined) {
console.log(age);
}
コード(JavaScript)
上記①と②のTypeScriptで書かれたメソッドをJavaScriptにトランスパイルすると以下のようになります。
方法①
function foo(age) {
console.log(age);
}
方法②
function foo2(age) {
if (age === void 0) { age = 99; }
console.log(age);
}