2
var opts: {n?: number; s?: string;};
opts = {n: 2}; // Ok
opts = {s: 'x'}; // Ok
opts = {}; // Ok
opts = {z: 3}; // Ok, but shouldn't this be an error?
我想opts
對象接受沒有或任何聲明 可選屬性(但沒有其他人)的,但它接受其他不確定 性質即聲明等效於opts: {};
,這是 一個錯誤?爲什麼未聲明的對象屬性未標記爲錯誤?
如果它不是一個錯誤,你怎麼能構造這樣一個聲明?
很好的答案,謝謝。 –
「因此任何對象都與此類型兼容」 不完全。例如,類型仍然會要求如果存在'n'屬性,它必須是'number'類型。 – Jesse
是的 - 這會使它「兼容」正確嗎? – Fenton