Typescript 对于接口,这两种方式之间的区别是什么?
为什么这两篇文章有不同的结果 PS:没有任何tsconfig设置Typescript 对于接口,这两种方式之间的区别是什么?,typescript,Typescript,为什么这两篇文章有不同的结果 PS:没有任何tsconfig设置 接口标签值{ 标签:字符串; } 接口标签值1{ 大小:数量; 标签:字符串; } 函数printLabel(labelledObj:LabelledValue){ 控制台日志(labelledObj.label); } printLabel({size:10,label:“size 10 Object”}); 让myObj:LabelledValue1={size:10,label:“size 10 Object”}; 打印标签
接口标签值{
标签:字符串;
}
接口标签值1{
大小:数量;
标签:字符串;
}
函数printLabel(labelledObj:LabelledValue){
控制台日志(labelledObj.label);
}
printLabel({size:10,label:“size 10 Object”});
让myObj:LabelledValue1={size:10,label:“size 10 Object”};
打印标签(myObj);
在parintLabel({})
上,我们得到一个类型错误:
类型为“{size:number;label:string;}”的参数不能分配给类型为“LabelledValue”的参数
Object literal只能指定已知的属性,而“LabelledValue”类型中不存在“size”。ts(2345)这是因为在第一个printlabel中,对象的类型为“any”,因此编译器不会检查该类型是否正确 正式文件: 如果使用该接口,编译器可以检查对象是否与定义匹配