如何在 TypeScript 的类中声明常量
使用 readonly 修饰符在类中声明常量。 当类字段以 readonly 修饰符为前缀时,我们只能为类构造函数内部的属性赋值。 在构造函数之外对属性进行赋值会导致错误。
class Person {
readonly name = 'Zadmei';
readonly country = 'China';
logCountry() {
console.log(this.country);
}
}
const person = new Person();
person.logCountry(); // ?️ "China"
console.log(person.name); // ?️ "Zadmei"
我们使用 readonly 修饰符来防止在构造函数之外对类属性进行赋值。
使用这种方法时,我们仍然可以在构造函数中更改属性的值。
class Person {
readonly name: string = 'Zadmei';
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 = 'Zadmei';
// ?️ 如果只需要从此类内部访问,则为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); // ?️ "Zadmei"
使用
static
关键字时,我们定义了静态方法或属性。 静态方法和属性不能在类的实例上访问,它们只能在类本身上访问。
firstName 属性被标记为 public,这意味着它可以在任何地方访问(类内和类外)。
当我们需要从类外部访问特定属性时,应该使用 public。
私有可见性只允许从类内部访问。
标记为受保护的成员仅对类本身及其子类可见。
确保我们正在访问类的静态属性和方法,例如 Person.firstName
,而不是类的实例。
另一种方法是在类之外声明一个常量并在类中使用它。
const firstName = 'Zadmei';
class Person {
logName() {
console.log(firstName);
}
}
const person = new Person();
person.logName(); // ?️ "Zadmei"
选择哪种方法是个人喜好的问题。 我会选择使用 readonly 修饰符,因为我认为这是最直接、最直观的方法。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。