上級 › as unknown as Xの二重キャストは型チェックを完全に迂回し、実行時エラーの原因になる › パターン1
as unknown as Xの二重キャストは型チェックを完全に迂回し、実行時エラーの原因になる
TypeScriptは通常、明らかに無関係な型同士のasによるキャストをエラーにします。
1 interface User { 2 name: string; 3 } 4 function greet(u: User): string { 5 return "Hello, " + u.name.toUpperCase(); 6 } 7 const raw: number = 42; 8 console.log(greet(______________________)); ^
main.ts:5
TypeError: Cannot read properties of undefined (reading 'toUpperCase')
空欄を埋めてコンパイルを通す
rawは実際にはnumberです。as unknown as Userは型チェックを完全に迂回するため、実行時にはnameプロパティが存在せずundefinedになります。
次の問題