readonly 修饰符的作用限制修改:
readonly 修饰符的属性只能在声明时或在构造函数中初始化,一旦初始化后,任何尝试修改该属性的操作都会导致编译时错误。提高代码安全性:
readonly 属性可以防止不小心或恶意地修改对象的某些关键属性,确保数据的不可变性。readonlyclass Person {
readonly name: string;
readonly age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
const person = new Person("Alice", 30);
console.log(person.name); // 输出: Alice
console.log(person.age); // 输出: 30
// 错误: 试图修改 readonly 属性
// person.name = "Bob";
解释:
Person 类中,name 和 age 属性使用了 readonly 修饰符,这意味着它们只能在构造函数中初始化,之后就不能再修改。person.name 或 person.age 会导致编译错误,确保这些属性在对象的生命周期内保持不变。readonlyinterface Point {
readonly x: number;
readonly y: number;
}
const point: Point = { x: 10, y: 20 };
console.log(point.x); // 输出: 10
console.log(point.y); // 输出: 20
// 错误: 试图修改 readonly 属性
// point.x = 30;
解释:
Point 接口中,x 和 y 属性被声明为 readonly。这意味着一旦 point 对象被初始化,它的 x 和 y 属性就不能被修改。point.x 会导致编译错误。readonly 修饰符用于防止对象属性在初始化后被修改,确保属性的不可变性。