类型系统
类型系统有两种
1 Structural Type System(结构化类型系统) => 我们ts用的就是这个系统 也被叫做鸭子系统
类型检查关注的是他们值所具有的形状
也就说 在结构化类型系统中 如果两个对象具有相同的形状 则认为他们属于同一类型
2 Nominal Type System(标明类型系统) (例如c++)
类型兼容性
成员相等时
当成员相等时
如果成员的类型相等 则兼容
class people {
name: string = ''
age: number = 0
}
class person {
name: string = '1231'
age: number = 132123312
}
// 值不需要相等 类型需要相等
const man: people = new person
成员不相等时
// 参数个数:参数多的兼容参数少的(或者说,参数少的可以赋值给多的)
// 在 JS 中省略用不到的函数参数实际上是很常见的,这样的使用方式,促成了 TS 中函数类型之间的兼容性
class people1 {
name: string = ''
age: number =<