Code Fix

初級非nullアサーション(!)がコンパイラを騙して実行時エラーになる › パターン3

非nullアサーション(!)がコンパイラを騙して実行時エラーになる

変数名の後ろに!を付ける非nullアサーションは、「この値はnull/undefinedではない」とコンパイラに約束する構文です。

 1  function toLength(items: number[] | undefined): number {
 2    return items!.length;
 3  }
 4  const data: number[] | undefined = _________;
                                           ^
 5  console.log(toLength(data));
main.ts:2 TypeError: Cannot read properties of undefined (reading 'length')

空欄を埋めてコンパイルを通す

広告
広告スロット(未設定)

非nullアサーション(!)がコンパイラを騙して実行時エラーになる

実際にはundefinedだった場合、型チェックは通過しますが実行時に例外が発生します。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)