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