类型兼容性
如果 a = b
b
如果能够赋值给 a
,那么称这两个类型兼容。一个总的原则,鸭子辩型法(子结构辩型法): 目标类型需要某一些特征,赋值的类型只要能满足该特征就可以
- 基本类型:完全匹配
- 对象类型:鸭子辩型法
interface Duck {
sound: 'gagaga'
swin(): void
}
let person = {
name: 'longjincen',
age: 12,
sound: 'gagaga',
swin: () => console.log('gagaga')
}
let duck: Duck = person // 赋值成功
- 对象赋值:当直接使用对象字面量赋值的时候,会进行更加严格的判断
- 函数类型: