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