Symbol 是 **ES2015** 新引入的一种原始类型的值。它类似于字符串,但是每一个 Symbol 值都是独一无二的,与其他任何值都不相等

symbol 类型 - 图1

unique symbol

symbol类型包含所有的 Symbol 值,但是无法表示某一个具体的 Symbol 值

  • 比如,5是一个具体的数值,就用5这个字面量来表示,这也是它的值类型。但是,Symbol 值不存在字面量,必须通过变量来引用,所以写不出只包含单个 Symbol 值的那种值类型
  • 为了解决这个问题,TypeScript 设计了 symbol 的一个子类型 unique symbol,它表示单个的、某个具体的 Symbol 值

symbol 类型 - 图2

symbol 类型 - 图3

类型推断

如果变量声明时没有给出类型,TypeScript 会推断某个 Symbol 值变量的类型

symbol 类型 - 图4