中級 › asによる型アサーションがコンパイラを騙して実行時エラーになる › パターン3
asによる型アサーションがコンパイラを騙して実行時エラーになる
asはコンパイラに「この値はこの型として扱ってよい」と伝える構文で、実際の値を変換したり検証したりはしません。
1 function sumAll(items: number[]): number { 2 return items.reduce((a, b) => a + b, 0); 3 } 4 const raw: unknown = _________; ^ 5 console.log(sumAll(raw as number[]));
main.ts:2
TypeError: items.reduce is not a function
空欄を埋めてコンパイルを通す
rawは実際には文字列です。as number[]で型を偽装しても、文字列にreduceメソッドは存在しないため例外になります。
次の問題