Code Fix

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

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

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

 1  function loud(s: string): string {
 2    return s.toUpperCase();
 3  }
 4  const arr: string[] = ["a"];
 5  const t: string | undefined = arr[_];
                                      ^
 6  console.log(loud(t!));
main.ts:2 TypeError: Cannot read properties of undefined (reading 'toUpperCase')

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

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

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

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

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

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