📜  如何在 TypeScript 中实现类常量?

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

如何在 TypeScript 中实现类常量?

在本文中,我们将尝试借助某些代码示例来了解如何在 TypeScript 中创建多个类常量(具有常量值的属性),以便更好地理解和澄清概念。

让我们首先快速了解如何使用以下语法在 TypeScript 中创建一个类 -

语法:使用 TypeScript 提供的以下语法来创建一个类-

class class_name {
    // Some codes....
}

以下示例将帮助我们理解上述创建类的语法。

示例 1:在此示例中,我们将简单地创建一个类,然后在调用任何特定数据时通过创建自己的实例(或对象)来使用其中的数据。

Javascript
class DisplayName {
  name: string = "GeeksforGeeks"
}
  
let instance = new DisplayName();
console.log(instance.name);


Javascript
class DisplayResult{
  readonly name : string = "GeeksforGeeks";
  displayResult() : void{
    console.log(this.name);
    // this.name = "Aman" 
    // Display an error message since 
    // it is readonly class property...
  }
}
  
let instance = new DisplayResult();
instance.displayResult();


Javascript
class DisplayResult{
      static readonly username : string = "GeeksforGeeks";
      static displayResult() : void {
    
         // DisplayResult.username = "Aman" 
        // Display an error message since
        // it is readonly class property...
        console.log(DisplayResult.username);
    }
}
  
DisplayResult.displayResult();


输出:

GeeksforGeeks

现在,我们已经了解了如何在 TypeScript 中创建一个类。让我们看看如何创建一个具有常量字段或属性的类,该类的值是不可更改或不可更改的。

示例 2:在此示例中,我们将创建一个具有与上面说明的相同语法的类。在这里,我们将使用一个名为readonly的关键字,它最终将帮助我们使该特定字段值不可更改。如果我们尝试更改该值,则会导致用户浏览器控制台上出现错误消息。

Javascript

class DisplayResult{
  readonly name : string = "GeeksforGeeks";
  displayResult() : void{
    console.log(this.name);
    // this.name = "Aman" 
    // Display an error message since 
    // it is readonly class property...
  }
}
  
let instance = new DisplayResult();
instance.displayResult();

输出:

GeeksforGeeks

示例 3:在此示例中,我们将使用上面提供的相同语法再次创建一个类。除了这里的readonly关键字,我们将使用另一个名为static的关键字,它最终将帮助我们直接实例化该常量属性,而无需为其创建任何特定实例。

换句话说,如果我们使用上面说明的东西,这个类属性将保持不变并且不能分配给类构造函数。同样为简单起见,我们将在这里声明静态方法(调用时不需要任何实例实例化),它将负责在浏览器的控制台上显示我们的结果。

Javascript

class DisplayResult{
      static readonly username : string = "GeeksforGeeks";
      static displayResult() : void {
    
         // DisplayResult.username = "Aman" 
        // Display an error message since
        // it is readonly class property...
        console.log(DisplayResult.username);
    }
}
  
DisplayResult.displayResult();

输出:

GeeksforGeeks