any、unknown、never、void 区别

1,671 阅读1分钟

any、unknown、never、void 区别

1. 定义

  • any :用于描述任意类型的变量,不作任何约束,编译时会跳过对其的类型检查
  • unknown :表示未知类型,即写代码的时候还不知道具体会是怎样的数据类型
  • never :永不存在的值的类型,常用于表示永不能执行到终点的函数返回值,例如抛出异常或函数中执行无限循环的代码(死循环)的函数返回值类型
  • void :表示无任何类型,没有类型,例如没有返回值的函数的返回值类型

any 与 unknown 的区别:

unknown 与 any 类似,但使用前必须进行断言或守卫

never 与 void 的区别:

用于函数时, never 表示函数用于执行不到返回值那一步(抛出异常或死循环)的返回值类型,即永不存在的值的类型,而 void 则表示没有返回值,不返回或返回 undefined

image.png