TypeScript 只读属性

摘要:在本教程中,您将学习如何使用 TypeScript 的readonly访问修饰符将类属性标记为不可变属性。

TypeScript 提供了readonly修饰符,允许您将类的属性标记为不可变的。对readonly属性的赋值只能在以下两个地方之一进行

  • 在属性声明中。
  • 在同一类的构造函数中。

要将属性标记为不可变,请使用readonly关键字。以下显示了如何在Person类中声明readonly属性

class Person {
    readonly birthDate: Date;

    constructor(birthDate: Date) {
        this.birthDate = birthDate;
    }
}Code language: JavaScript (javascript)

在此示例中,birthdate属性是一个readonly属性,在Person类的构造函数中进行初始化。

以下尝试重新赋值birthDate属性,这会导致错误

let person = new Person(new Date(1990, 12, 25));
person.birthDate = new Date(1991, 12, 25); // Compile errorCode language: JavaScript (javascript)

错误

Cannot assign to 'birthDate' because it is a read-only property.Code language: JavaScript (javascript)

与其他访问修饰符一样,您可以像这样在构造函数中合并readonly属性的声明和初始化

class Person {
    constructor(readonly birthDate: Date) {
    }
}Code language: JavaScript (javascript)

readonly 与 const

以下显示了readonlyconst之间的区别

readonlyconst
用途类属性变量
初始化在声明中或同一类的构造函数中在声明中

总结

  • 使用readonly访问修饰符将类属性标记为不可变。
  • readonly属性必须作为声明的一部分或在同一类的构造函数中进行初始化。
本教程是否有帮助?