上級 › 変数経由なら余分なプロパティが通る理由 › パターン3
変数経由なら余分なプロパティが通る理由
オブジェクトリテラルを直接関数に渡すと余分なプロパティはエラーになりますが、いったん変数に代入してから渡すとエラーになりません。
1 interface Config { 2 host: string; 3 } 4 const raw = { host: "localhost", port: 8080 }; 5 function connect(c: Config): void { 6 console.log(c.host); 7 } 8 connect(_________________________________); ^
main.ts(8,30): error TS2353: Object literal may only specify known properties, and 'port' does not exist in type 'Config'.
空欄を埋めてコンパイルを通す
直接のリテラルは余分なportをエラーにしますが、変数raw経由で渡せば同じ内容でもエラーになりません。
次の問題