【发布时间】:2016-02-05 15:39:22
【问题描述】:
我在看Typescript手册,在界面一章发现了一个问题:
interface LabelledValue {
label: string;
}
function printLabel(labelledObj: LabelledValue) {
console.log(labelledObj.label);
}
let myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);
printLabel 需要一个具有label:string 属性的对象,但是我们传递的对象还有另一个名为size 的属性。没关系,因为编译器只检查是否至少存在所需的那些并匹配所需的类型。
但是,我们这样称呼printLabel:
printLabel({size: 10, label: "Size 10 Object"});
编译抛出异常。
那为什么?
【问题讨论】:
-
你能包括例外吗?
-
如果您搜索错误消息 (
object literal may only specify known properties),您会找到答案:stackoverflow.com/questions/31816061/… 或 stackoverflow.com/questions/32897098/…
标签: typescript