1?. の基本 — 無ければ undefined で止まる
?. の最も基本の動きです。手前の値があれば続きの処理が実行され、undefined ならエラーにならずに式全体が undefined になります。if 文を書かずに「あれば使う」を1行で表せることを確かめましょう。
TypeScript
2ネストした階層を安全にたどる
?. は a.b?.c のようにつなげて、深い階層を安全にたどれます。途中のどの階層が欠けていても、そこで undefined になって止まるだけでエラーにはなりません。階層のあるデータを扱うときの基本形です。
TypeScript
3?. の結果は undefined かもしれない
?. はエラーを防ぐだけで、値の存在を保証してはくれません。結果を変数に受けると「元の型 | undefined」になるので、最終的に値が必要な場面では undefined かどうかの確認が必要だと分かる例です。
TypeScript
4あれば呼ぶ — 関数の ?.() 呼び出し
?. はプロパティだけでなく、onDone?.() のように「関数があれば呼ぶ」形でも使えます。コールバックが任意指定のオプションになっている設計は実務で頻出で、渡されたときだけ通知する処理が1行で書けます。
TypeScript
5APIレスポンスのネストに安全アクセス
実務で ?. が最も活躍するのは、項目が欠けていることのある API レスポンスの処理です。注文データの「顧客情報の中の住所の中の都市名」のような深い参照を、どの階層が欠けていても落ちないコードで書けます。
TypeScript