解释 TypeScript 中的符号类型
在 Typescript 中,符号是一种原始数据类型。原始数据类型不是对象,它不具有任何属性或方法,也不能更改。符号类型类似于数字、字符串、布尔值等其他类型。符号值是使用符号构造函数创建的。
语法:以下是创建符号值的语法:
Symbol() // OR
Symbol("string")
示例 1:创建符号
符号是直接使用符号构造函数或另外使用可选键创建的。我们创建了一个普通符号和一个带有可选键“abc”的符号。
Javascript
Javascript
Javascript
Javascript
Javascript
let symbol1: unique symbol = Symbol();
输出:
Symbol()
Symbol(abc)
示例 2:每个符号都是唯一的
每个符号都是独一无二的。下面的代码检查两个符号是否相同,但在我们比较两个符号时返回 false。
Javascript
输出:
false
false
示例 3:符号作为对象属性的键
由于符号是唯一的,它们可以用作对象属性的键。
Javascript
输出:
secret_code
Example4:用于声明类成员或类方法的符号
在此示例中,使用符号声明类成员。该方法返回类的名称。我们通过创建一个对象来调用该类,然后访问该方法。
Javascript
输出:
SymbolClass
示例 5:作为唯一字面量的符号
通常,符号仅被视为一种类型。要将符号视为唯一字面量,打字稿有一种称为“唯一符号”的特殊类型。它是 Symbol() 的子类型。 “唯一符号”只能与声明为 const 或只读属性的变量一起使用。如果我们想引用一个唯一的符号类型变量,我们需要使用运算符的类型。
Javascript
let symbol1: unique symbol = Symbol();
输出:
'Symbol' only refers to a type, but is being used
as a value here. Do you need to change your
target library?
Try changing the 'lib' compiler option to es2015 or later.
唯一类型变量必须是 const。正确的声明如下所示:
declare const symbol1: unique symbol;
参考: https://www.typescriptlang.org/docs/handbook/symbols.html