上級 › 型注釈(: 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'.
空欄を埋めてコンパイルを通す
: Pointという型注釈を付けると、origin自体の型がPointに絞られ、実際には残っているzへアクセスできなくなります。satisfiesならrawの元の型がそのまま保たれ、zにもアクセスできます。
次の問題