如何在 TypeScript 的类中声明常量
使用 readonly
修饰符在类中声明常量。 当类字段以 readonly
修饰符为前缀时,我们只能为类构造函数内部的属性赋值。 在构造函数之外对属性进行赋值会导致错误。
class Person {
readonly name = 'Jiyik';
readonly country = 'China';
logCountry() {
console.log(this.country);
}
}
const person = new Person();
person.logCountry(); // 👉️ "China"
console.log(person.name); // 👉️ "Jiyik"
我们使用 readonly
修饰符来防止在构造函数之外对类属性进行赋值。
使用这种方法时,我们仍然可以在构造函数中更改属性的值。
class Person {
readonly name: string = 'Jiyik';
readonly country: string = 'China';
constructor() {
this.name = 'Bob';
this.country = 'Belgium';
}
logCountry() {
console.log(this.country);
}
}
const person = new Person();
person.logCountry(); // 👉️ "Belgium"
console.log(person.name); // 👉️ "Bob"
如果我们不想在构造函数中更改 readonly
属性的值,则可以将 static
关键字与 readonly
一起使用。
class Person {
// 👇️ public 如果需要从类外访问
public static readonly firstName = 'Jiyik';
// 👇️ 如果只需要从此类内部访问,则为private
private static readonly country = 'China';
// 👇️ 如果只需要从此类及其子类访问,则为 protected
protected static readonly age = 30;
logProperties() {
console.log(Person.firstName);
console.log(Person.country);
console.log(Person.age);
}
}
console.log(Person.firstName); // 👉️ "Jiyik"
使用
static
关键字时,我们定义了静态方法或属性。 静态方法和属性不能在类的实例上访问,它们只能在类本身上访问。
firstName 属性被标记为 public,这意味着它可以在任何地方访问(类内和类外)。
当我们需要从类外部访问特定属性时,应该使用 public。
私有可见性只允许从类内部访问。
标记为受保护的成员仅对类本身及其子类可见。
确保我们正在访问类的静态属性和方法,例如 Person.firstName
,而不是类的实例。
另一种方法是在类之外声明一个常量并在类中使用它。
const firstName = 'Jiyik';
class Person {
logName() {
console.log(firstName);
}
}
const person = new Person();
person.logName(); // 👉️ "Jiyik"
选择哪种方法是个人喜好的问题。 我会选择使用 readonly
修饰符,因为我认为这是最直接、最直观的方法。
相关文章
在 Go 中声明常量 Map
发布时间:2023/04/27 浏览次数:126 分类:Go
-
Map 是可以按任何顺序排序的键值对的集合。 它为键分配值。它是计算机科学中常见的数据结构。 在本文中,我们将介绍在 Go 中声明常量映射。
在 AngularJs 中设置 Select From Typescript 的默认选项值
发布时间:2023/04/14 浏览次数:78 分类:Angular
-
本教程提供了在 AngularJs 中从 TypeScript 中设置 HTML 标记选择的默认选项的解释性解决方案。
在 Angular 中使用 TypeScript 的 getElementById 替换
发布时间:2023/04/14 浏览次数:153 分类:Angular
-
本教程指南提供了有关使用 TypeScript 在 Angular 中替换 document.getElementById 的简要说明。这也提供了在 Angular 中 getElementById 的最佳方法。
在 TypeScript 中使用 try..catch..finally 处理异常
发布时间:2023/03/19 浏览次数:181 分类:TypeScript
-
本文详细介绍了如何在 TypeScript 中使用 try..catch..finally 进行异常处理,并附有示例。
在 TypeScript 中使用 declare 关键字
发布时间:2023/03/19 浏览次数:97 分类:TypeScript
-
本教程指南通过特定的实现和编码示例深入了解了 TypeScript 中 declare 关键字的用途。
在 TypeScript 中 get 和 set
发布时间:2023/03/19 浏览次数:172 分类:TypeScript
-
本篇文章演示了类的 get 和 set 属性以及如何在 TypeScript 中实现它。
在 TypeScript 中格式化日期和时间
发布时间:2023/03/19 浏览次数:161 分类:TypeScript
-
本教程介绍内置对象 Date() 并讨论在 Typescript 中获取、设置和格式化日期和时间的各种方法。
在 TypeScript 中返回一个 Promise
发布时间:2023/03/19 浏览次数:182 分类:TypeScript
-
本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。
在 TypeScript 中定义函数回调的类型
发布时间:2023/03/19 浏览次数:221 分类:TypeScript
-
本教程说明了在 TypeScript 中为函数回调定义类型的解决方案。为了程序员的方便和方便,实施了不同的编码实践指南。