1?? の基本 — 無いときだけ既定値
?? の最も基本の形です。左の値が null か undefined のときだけ右の既定値が使われ、値があればそのまま通します。「無いかもしれない値に既定値を与える」処理が1行で書けることを確かめましょう。
TypeScript
2|| との違い — 0 を消さない
?? と || の決定的な違いを示す例です。|| は 0 や空文字列も「偽」とみなして既定値に置き換えてしまいますが、?? が反応するのは null と undefined だけです。「音量 0」のような有効な値を守れるのは ?? の方です。
TypeScript
3?. と ?? の組み合わせ
前のレッスンの ?. でたどり、最後に ?? で既定値を埋めるのは実務の定番コンビです。「あれば使う、なければ既定値」という流れが、ネストしたデータに対しても1行で書けます。
TypeScript
4設定オブジェクトの既定値を埋める
省略可能な設定を受け取り、?? で既定値を埋めて「完全な設定」を作るのは実務の頻出パターンです。showHeader に false を渡しても上書きされない(?? は false を尊重する)点にも注目してください。
TypeScript
5多段フォールバック — 個人設定→チーム設定→既定値
?? はつなげて書けるので、「個人設定があればそれ、なければチーム設定、それも無ければ既定値」という優先順位付きの解決を1行で表現できます。アプリの設定値の解決ロジックそのままの、実務に近い形です。
TypeScript