TypeScript 解释符号类型

TypeScript 解释符号类型

在TypeScript中,符号是一种原始数据类型。原始数据类型不是对象,它没有属性或方法,也无法被改变。符号类型类似于其他类型,如数字、字符串、布尔等。符号值是使用Symbol构造函数创建的。

语法: 以下是创建符号值的语法:

Symbol()  // OR
Symbol("string")

示例1:创建符号

使用符号构造函数直接创建符号,或者通过使用可选键来创建。我们创建了一个普通符号和一个带有可选键“abc”的符号。

Javascript

<script> 
    // Creating a symbol normally 
    let symbol1 = Symbol(); 
    console.log(symbol1); 
      
    // Creating a symbol with an optional key 
    let symbol2 = Symbol("abc"); 
    console.log(symbol2); 
</script> 

输出:

Symbol()
Symbol(abc)

示例2:每个符号都是唯一的

每个符号都是唯一的。下面的代码检查两个符号是否相同,但由于我们比较的是两个符号,所以返回值为false。

JavaScript

<script> 
    // Creating a symbol 
    let symbol1 = Symbol(); 
      
    // Creating a symbol with an optional key 
    let symbol2 = Symbol("abc"); 
      
    console.log(symbol1 == symbol2); 
    console.log(symbol1 === symbol2); 
</script> 

输出:

false
false

示例3:符号作为对象属性的键

由于符号是唯一的,因此可以用作对象属性的键。

JavaScript

<script> 
    let symbol1 = Symbol(); 
      
    let obj1 = { 
      symbol1: "secret_code", 
    }; 
      
    console.log(obj1.symbol1); 
</script> 

输出:

secret_code

示例4:用于声明类成员或类方法的符号

在这个示例中,使用符号声明了一个类成员。该方法返回类的名称。我们通过创建一个对象并访问该方法来调用该类。

JavaScript

<script> 
    let symbol1 = Symbol(); 
      
    class SymbolClass { 
      symbol1() { 
        return "SymbolClass"; 
      } 
    } 
      
    let obj = new SymbolClass(); 
    let className = obj.symbol1(); 
    console.log(className); 
</script> 

输出:

SymbolClass

示例5:将符号作为唯一文字

通常,符号只被视为一种类型。为了将符号作为唯一的文字处理,TypeScript拥有一种特殊的类型称为“unique symbol”。它是Symbol()的子类型。唯一的符号只能与那些被声明为const或只读属性的变量一起使用。如果我们想要引用一个唯一符号类型的变量,我们需要使用typeof运算符。

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程