ts 基础
参考资料:
基础类型
- boolean、number、string
- 枚举 enum
- any、unknown、void
- never
- 数组类型[]
- 元组类型 tuple
函数类型
ts 定义函数时需要定义输入参数类型和输出类型 输入参数:可选参数 or 默认参数 函数重载 输出参数:可以自动推断,无返回值时,默认 void 函数重载
interface
接口是为了定义对象类型 可选属性:? 只读属性:readonly 可以描述函数类型 可以描述自定义属性
类
与 js 相比: 增加 public、private、protected 修饰符 抽象类:只能继承、不能实例化 作为基类,抽象方法必须被子类实现 interface 约束类,使用 implements 关键字
进阶
高级类型
- 联合类型|
- 交叉类型& 同名类型取交集
- 类型断言
- 类型别名 给类型起别名 type-interface 可以定义对象或函数 都允许继承 差异:interface 是 ts 用来定义对象、type 是定义别名方便使用 type 可以定义基本类型、interface 不行 interface 可以重复合并声明、type 不行
泛型
<类型参数> 临时占位 自动推导
基础操作符
typeof 获取类型 keyof 获取所有键 in 遍历 T[K] 索引访问 extends 泛型约束
常用工具类型
Partial 可选 Required 必选 Readonly 只读 Pick、Record
实战
声明文件
declare 声明文件 .d.ts 声明文件定义 @types 三方库 ts 类型包 tsconfig.json 定义 ts 的配置