2017.11.2
2020.1.7

メソッドや関数の引数を省略可能にする

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

参考リンク

TypeScript】関連記事