摘要:在本教程中,您将学习如何使用 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 error
Code 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
以下显示了readonly
和const
之间的区别
readonly | const | |
用途 | 类属性 | 变量 |
初始化 | 在声明中或同一类的构造函数中 | 在声明中 |
总结
- 使用
readonly
访问修饰符将类属性标记为不可变。 readonly
属性必须作为声明的一部分或在同一类的构造函数中进行初始化。
本教程是否有帮助?