📜  解释 TypeScript 中的符号类型

📅  最后修改于: 2022-05-13 01:56:17.626000             🧑  作者: Mango

解释 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