Dev Study
← 解説「非nullアサーション !」に戻る

サンプルコードで身につける: 非nullアサーション !

解説で学んだ概念を、5つの具体例で確認します。素朴な例から実務寄りの例へと進みます。

1! の基本 — null の可能性を打ち消す

値の後ろに ! を付けると、string | null から null が取り除かれて string として扱えます。「この呼び出しでは必ず値がある」と流れの上で分かっているときに、コンパイラへその保証を伝える最も基本の形です。

TypeScript

2配列の find の結果に ! を付ける

find は「見つからないかもしれない」ので undefined を含む型を返します。候補に必ず含まれていると分かっている検索では、! を付けて結果をそのまま使うのが典型的な使いどころです。

TypeScript

3正規表現の match 結果に ! を付ける

文字列の match メソッドも「一致しないかもしれない」ので null を含む型を返します。形式が保証されたデータから日付などを抜き出す場面では、必ず一致すると分かっているため ! が活躍します。

TypeScript

4if での絞り込みと ! の使い分け

同じ「null かもしれない値」でも、if で絞り込めば保証はコンパイラ持ち、! を使えば保証は自分持ちになります。迷ったら安全な絞り込みを選び、! は流れの上で確実なときの最後の手段にする、という使い分けを見比べる例です。

TypeScript

5ログイン中ユーザーの取得 — 前提が確かな場面の !

「ログイン中ユーザーの ID は必ず一覧に存在する」のようなアプリの前提があるのに、コンパイラはそれを追えない、というのが実務で ! を使う典型場面です。前提をコメントで残しておくと、後から読む人にも保証の根拠が伝わります。

TypeScript