01 为什么要学习TS
- ts是js的超集
- ts强类型,可以在编译期间发现并纠正错误,支持静态代码检测,支持后端语言的相关特性
- ts可以编译为js运行
02 TS基础
- number包括:整数、浮点数、复数
- 枚举enum:有映射也有反向映射,从成员名到成员值,也从成员值到成员名
- 枚举:常量和异构的枚举
- any:为了效率
- unknown:any的一个替代类型,any赋值或者反向赋值都可以不会报错,unknown值运行被赋值
- never:永远不存在值的类型
- 元组是数组的特殊形式
- 函数重载:名称相同但是参数不同,可以通过重载支持多种类型
- 接口:是为了定义对象类型
- ts类型对比
- 抽象类只能被继承,不能被实例化
- #标识为私有属性
03 TS进阶
- 同名类型取交集
- 同名的非基础类型的合并会进行相关元素的组合关系
- 断言告诉实例具体类型
- 断言两个用法:标识符属性前置断言定义、as的方式
- 断言又分为非空断言和确定赋值的断言
- type进行类型别名
- 组合和交叉类型使用type
- 类的类型定义使用interface
高级类型分为涉及到泛型的和不涉及到泛型的
泛型要考虑到可重用性
- 通过泛型解决了输入输出可关联的问题
- T的作用就是临时占位的作用
- 通过推导得到定义
- 泛型的核心点:引入了一个临时占位的变量,之后对传来的类型进行推导来实现完整的类型定义的能力