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