定义
- any: 用于描述任意类型的变量,不作任何约束,编译时会跳过对其的类型检查
- unknow: 表示未知类型,即写代码的时候还不知道具体会是怎样的数据类型
- never: 用不存在的值的类型,常用于表示永不能执行到终点的函数返回值,例如抛出异常或函数中执行无限循环的代码(死循环)的函数返回值类型
- void: 表示无任何类型,没有类型,例如没有返回值的函数的返回值类型
any 与 unknown 的区别:
unknow 与 any 类似,但使用前必须进行断言或守卫
never 与 void 的区别:
用于函数时,never表示函数用于执行不到返回值那一步(抛出异常或死循环)的返回值类型,即永不存在的值的类型,而void则表示没有返回值,不返回或返回undefined
如何使用
- 能不用any就不用any
- 声明时如果不确定具体的类型,则可以使用unknow代替,在使用时用类型断言或类型守卫进行类型收缩
- never常用于构造条件类型来组合出更灵活的类型定义
- void 常用于表示函数没有返回值