Code Fix

中級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')

空欄を埋めてコンパイルを通す

広告
広告スロット(未設定)

asによる型アサーションがコンパイラを騙して実行時エラーになる

unknown型の値をasで別の型に見せかけると、実際の値がその型のメソッドを持たない場合に実行時エラーになります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)