Code Fix

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

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

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

 1  type Point = { x: number; y: number };
 2  const raw = { x: 0, y: 0, z: 5 };
 3  ___________________________________
                     ^
 4  console.log(origin.z);
main.ts(4,20): error TS2339: Property 'z' does not exist on type 'Point'.

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

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

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

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

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

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