上級 › 変数経由なら余分なプロパティが通る理由 › パターン5
変数経由なら余分なプロパティが通る理由
オブジェクトリテラルを直接関数に渡すと余分なプロパティはエラーになりますが、いったん変数に代入してから渡すとエラーになりません。
1 interface Label2 { 2 text: string; 3 } 4 const raw = { text: "hi", extra: true }; 5 function printLabel(l: Label2): void { 6 console.log(l.text); 7 } 8 printLabel(___________________________); ^
main.ts(8,26): error TS2353: Object literal may only specify known properties, and 'extra' does not exist in type 'Label2'.
空欄を埋めてコンパイルを通す
リテラルとして直接渡すと余分なextraがエラーになります。変数rawを経由すればこのチェックは働きません。
次の問題