← TypeScript コース
32. null合体演算子 ??
?? は「左の値が null か undefined のときだけ、右の既定値を使う」演算子です。value ?? 30 と書けば、value に値があればそのまま、無ければ 30 が使われます。「無いかもしれない値に既定値を与える」処理を1行で書けます。
実務では、設定値やオプション引数の既定値を埋める場面で毎日のように使います。前のレッスンの ?. と組み合わせた user.nickname ?? "名無し" のような形は、「あれば使う、なければ既定値」の定番パターンです。
つまずきポイントは、似た働きをする || との違いです。|| は 0 や 空文字列も「偽」とみなして右側に置き換えてしまうため、「0 は有効な値」という場面でバグになります。?? が反応するのは null と undefined だけなので、既定値の用途では ?? を選びましょう。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
TypeScript
サンプルコードで身につける(5本) →
学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。
公式ドキュメントで詳しく ↗