概要
typescriptに?.
という表現がある。
Google検索時には「typescript はてなドット」のようなサジェストが挙がる。
オプショナルチェーン(optional chaining)という記法でnull
やundefined
の可能性があるプロパティにアクセスするときにとても便利。
参考
オプショナルチェーン (optional chaining) | サバイバルTypeScript
サンプル
次のようにundefined
な可能性のあるオブジェクトhoge
に対してfuga()
メソッドを呼び出すときに使える。
interface Hoge {
fuga: () => void
}
const sample1 = (hoge: Hoge | undefined) => {
hoge?.fuga() // undefinedの可能性のあるhogeからfuga()を呼び出す。
}
?.
を使わずにhoge.fuga()
と書いてしまうとundefined.fuga()
の意味合いとなってしまいエラーとなる。
簡単に言えば次のif分を省略するために?.
が使える。
const sample2 = (hoge: Hoge | undefined) => {
if (hoge) {
hoge.fuga()
}
}