深入浅出TS
为什么学习TS
TS vs JS
超集、强类型、编译、严格
TS推荐
TS基础
基础类型
Boolean、number、string
枚举类型:一种映射,从枚举名到枚举值映射与反映射
any、unknown、void:未知?
never:永远没有值的类型
数组类型:[]
元组类型 tuple
函数类型
TS中函数要定义输入参数类型和输出类型;
输入参数支持可选参数与默认参数;
输出参数支持自动推断,无返回值时,默认为void类型;
支持重载;
interface接口类型
接口是为了定义对象类型;
特点:可选属性;只读属性;描述函数类型;描述自定义属性
类
与JS类似,新增 public、private、protected修饰符;
抽象类 abstract:只能继承不能实例化的类;作为基类,抽象方法必须被子类实现
约束类,使用implements关键字
TS进阶
高级类型
联合类型 |
交叉类型 &
类型断言 arg as XXX
类型别名
泛型
what?
when?
how?
操作符
typeof 获取类型;
keyof 获取所有键;
in 遍历枚举类型;
T[K] 索引访问;
extends 泛型约束;
泛型工具类型
TS实战
声明文件
declare:三方库需要类型声明文件
.d.ts: 声明文件定义
@types: 三方库TS类型包
tsconfig.json:定义TS的配置