Code Fix

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

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

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

 1  type Item = { name: string };
 2  const raw = { name: "Pen", price: 100 };
 3  ________________________________
                    ^
 4  console.log(item.price);
main.ts(4,18): error TS2339: Property 'price' does not exist on type 'Item'.

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

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

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

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

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

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