中級 › asによる型アサーションがコンパイラを騙して実行時エラーになる › パターン2
asによる型アサーションがコンパイラを騙して実行時エラーになる
asはコンパイラに「この値はこの型として扱ってよい」と伝える構文で、実際の値を変換したり検証したりはしません。
1 interface User { 2 name: string; 3 } 4 function greet(u: User): string { 5 return u.name.toUpperCase(); 6 } 7 const raw: unknown = ______________; ^ 8 console.log(greet(raw as User));
main.ts:5
TypeError: Cannot read properties of undefined (reading 'toUpperCase')
空欄を埋めてコンパイルを通す
rawは実際には数値です。as Userで型を偽装しても、実行時にはnameプロパティが存在せずundefinedになります。
次の問題