初級 › 非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')
空欄を埋めてコンパイルを通す
dataがundefinedのままitems!でアクセスすると、実行時にlengthを読もうとして例外になります。
次の問題