symbol

ECMAScript 2015 引入了一种名为 symbol 的原始类型,不过这种类型不仅与其他原始类型格格不入,而且应用场景很窄,甚至可以说没有太大作用。因此,本节仅简单介绍 symbol 类型。

symbol 类型的变量的值需要通过 Symbol() 函数来创建,每一个通过 Symbol() 函数创建的值都是唯一的,示例代码如下。

let sym1: symbol = Symbol();

symbolECMAScript 2015 中的新增语法,因此需要设置编译时的目标 ECMAScript 版本,例如,在编译时使用 --target 参数来指定高于 ECMAScript 2015ECMAScript 版本。

也可以向 Symbol() 函数传入一个字符串,这个字符串并没有实际意义,只对这个 symbol 值起注释作用。例如,在以下代码中,为每个 symbol 值都传入了说明,虽然说明文字一模一样,但是它们本质上是两个不同的 symbol 值。

let sym1: symbol = Symbol("说明");
let sym2: symbol = Symbol("说明");
console.log(sym1==sym2);

输出结果如下。

> false