两种类型系统
- 结构化类型系统
Structural Type System
- 标明类型系统
Nominal Type System
TS
采用的是结构化类型系统,如果运行时类型至少与编译型类型相同,则认为它们属于统一类型。
类兼容性
class People{
name: string
age: number
}
class Person{
name: string
age: number
// 编译型类型可以多
sex: string
}
// 认为两者是同一类型
const p: People = new Person()
接口兼容性
函数兼容性
需要考虑
- 参数个数:参数少的可以赋值给多的。
- 参数类型:相同位置的参数类型要相同或兼容。
- 返回值类型:返回值是原始类型,则要相同;返回值是对象类型,成员多的赋值给成员少的。