Code Fix

上級型注釈(: Type)はプロパティを消さずに「見えなく」する。satisfiesとの違い › パターン3

型注釈(: Type)はプロパティを消さずに「見えなく」する。satisfiesとの違い

変数に: Typeという型注釈を付けると、その型に無いプロパティへのアクセスができなくなります。

 1  type Config = { mode: string };
 2  const raw = { mode: "dark", debug: true };
 3  _________________________________
                    ^
 4  console.log(cfg.debug);
main.ts(4,17): error TS2339: Property 'debug' does not exist on type 'Config'.

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

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

型注釈(: Type)はプロパティを消さずに「見えなく」する。satisfiesとの違い

実行時にはプロパティ自体は残っていますが、型の上では「そんなものは無い」ものとして扱われます。satisfiesは元の値の型をそのまま保つため、この制限を受けません。

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

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