skip to content

TypeScript
TS 中几个不常用的特殊类型

  • any

    • any is hell 就像写 JS 一样
  • unknown

    • 描述类型并不确定的变量,不过更安全,操作时需要缩小类型
  • void

    • 没啥用
  • undefined

    最大价值主要体现在接口类型上,它表示一个可缺省、未定义的属性。

  • null

    • 价值主要体现在接口制定上,它表明对象或属性可能是空值。尤其是在前后端交互的接口,比如 Restful、Graphql,任何涉及查询的属性、对象都可能是 null 空对象
  • never

    • 表示永远不会发生值的类型
    • 是所有类型的子类型,它可以给所有类型赋值
    • 但是反过来,除了 never 自身以外,其他类型(包括 any 在内的类型)都不能为 never 类型赋值。
    // 一个统一抛出错误的函数
    // 函数永远不会有返回值,所以它的返回值类型就是 never
    function ThrowError(msg: string): never {
      throw Error(msg)
    }
    
  • object

    • 没有什么用武之地