TypeScript 编程语言
更新: 2023-12-12 14:59:10 字数: 0 字 时长: 0 分钟
带有类型语法的 JavaScript,是一种基于 JavaScript 的强类型编程语言
any,unknown,never
any 类型
any 类型表示没有任何限制,该类型的变量可以赋予任意类型的值。
目前存在的 2 个问题:
类型推断问题:对于开发者没有指定类型、TypeScript 必须自己推断类型的那些变量,如果无法推断出类型,TypeScript 就会认为该变量的类型是
any
。污染问题:
any
类型除了关闭类型检查,还有一个很大的问题,就是它会“污染”其他变量。它可以赋值给其他任何类型的变量(因为没有类型检查),导致其他变量出错。
unknown 类型
为了解决 any
类型“污染”其他变量的问题,TypeScript 3.0 引入了 unknown
类型。它与 any
含义相同,表示类型不确定,可能是任意类型,但是它的使用有一些限制,不像 any
那样自由,可以视为严格版的 any
。
unknown
跟 any
的相似之处,在于所有类型的值都可以分配给 unknown
类型。
never 类型
为了保持与集合论的对应关系,以及类型运算的完整性,TypeScript 还引入了“空类型”的概念,即该类型为空,不包含任何值。
由于不存在任何属于“空类型”的值,所以该类型被称为 never
,即不可能有这样的值。
总结
TypeScript 有两个“顶层类型”(any
和 unknown
),但是“底层类型”只有 never
唯一一个。