请教一下是为什么 同样是用MyInterface的接口校验规则 去检测为什么第一个能正常编译 后者报错
其中的编译规则是怎样的
interface MyInterface{
name: string
}
function consoleName(myObj: MyInterface){
console.log(myObj.name)
}
let myobj = {
size:10,
name:'nihao'
}
consoleName(myobj)
// 正常编译
interface MyInterface{
name: string
}
let myobj:MyInterface = {
name:'nihao',
size:10 //Error
}
// size出错
简单来说,
不是一个 MyInterface 类型,但是它能够赋值给一个 MyInterface 类型的变量,因为前者能够兼容后者。
具体可以看类型兼容性