Skip to content

TypeScript 编程语言

带有类型语法的 JavaScript,是一种基于 JavaScript 的强类型编程语言

官网

any,unknown,never

any 类型

any 类型表示没有任何限制,该类型的变量可以赋予任意类型的值。

目前存在的 2 个问题:

  • 类型推断问题:对于开发者没有指定类型、TypeScript 必须自己推断类型的那些变量,如果无法推断出类型,TypeScript 就会认为该变量的类型是 any

  • 污染问题:any 类型除了关闭类型检查,还有一个很大的问题,就是它会“污染”其他变量。它可以赋值给其他任何类型的变量(因为没有类型检查),导致其他变量出错。

unknown 类型

为了解决 any 类型“污染”其他变量的问题,TypeScript 3.0 引入了 unknown 类型。它与 any 含义相同,表示类型不确定,可能是任意类型,但是它的使用有一些限制,不像 any 那样自由,可以视为严格版的 any

unknownany 的相似之处,在于所有类型的值都可以分配给 unknown 类型。

never 类型

为了保持与集合论的对应关系,以及类型运算的完整性,TypeScript 还引入了“空类型”的概念,即该类型为空,不包含任何值。

由于不存在任何属于“空类型”的值,所以该类型被称为 never,即不可能有这样的值。

总结

TypeScript 有两个“顶层类型”(anyunknown),但是“底层类型”只有 never 唯一一个。

你觉得这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度