IT-Q

strictNullChecks が有効だと、何が変わりますか。

null と undefined が独立した型になり、string 型の変数に null を入れられなくなります。null かもしれない値は string | null として表れ、確かめるまで使えません。

面接官が見ているのはnull 安全の仕組みを理解しているか。

よくある答えと、面談でどう見られるか

  • null と undefined が別の型になり、string 型の変数に null を入れられなくなる
    その通りです。null かもしれない値は string | null のように型に表れ、確かめるまで使えません。
  • 実行時に null を検出して例外にする
    実行時には何もしません。コンパイル時の検査です。
  • null と undefined を同じものとして扱う
    逆です。無効だと null と undefined はあらゆる型に入り込めてしまいます。
  • すべての変数に初期値が必須になる
    代入前に読むとエラーになりますが、宣言時に初期値が必須になるわけではありません。

模範解答

null と undefined が独立した型になります。無効のときは、null と undefined がどの型にも入り込めるので、string 型の変数に null が入っていても検査されません。

有効にすると、null かもしれない値は string | null のように型に表れ、確かめてからでないと string として使えなくなります。「undefined のプロパティを読もうとして落ちる」事故の多くを、実行前に見つけられます。

strict に含まれているので、6.0 以降では既定で有効です。

対象: TypeScript 5.x〜7.0 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。