Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 对于接口,这两种方式之间的区别是什么?_Typescript - Fatal编程技术网

Typescript 对于接口,这两种方式之间的区别是什么?

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”}; 打印标签

为什么这两篇文章有不同的结果

PS:没有任何tsconfig设置

接口标签值{
标签:字符串;
}
接口标签值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”,因此编译器不会检查该类型是否正确

正式文件:

如果使用该接口,编译器可以检查对象是否与定义匹配