前端 TypeScript 面试题, TypeScript 类的 readonly 修饰符有什么作用?
前端 TypeScript 面试题, TypeScript 类的 readonly 修饰符有什么作用?
QA
Step 1
Q:: TypeScript 类的 readonly 修饰符有什么作用?
A:: TypeScript 中的 readonly 修饰符用于标记类中的属性为只读属性。一旦属性被设置为 readonly,它只能在初始化时赋值(例如在声明时或构造函数中),之后不能再被修改。这对于防止对象的状态被意外或错误地改变非常有用,从而提高代码的安全性和稳定性。
Step 2
Q:: 如何在 TypeScript 中使用 readonly 修饰符?
A:: 你可以在声明类的属性时使用 readonly 关键字。如下所示:
class Example {
readonly name: string;
constructor(name: string) {
this.name = name;
}
}
在这个例子中,name
属性在被初始化后不能被修改。
Step 3
Q:: readonly 和 const 的区别是什么?
A:: readonly 和 const 都用于限制对变量的修改,但它们的使用场景不同。const 用于声明常量变量,意味着变量本身的引用不能改变(但引用的对象内容可以改变)。readonly 则用于类的属性,意味着属性只能在初始化时被赋值,之后不能修改。
Step 4
Q:: readonly 修饰符能否与其他修饰符一起使用?
A:: 是的,readonly 修饰符可以与其他修饰符(如 public、private 和 protected)一起使用。例如:
class Example {
public readonly id: number;
private readonly name: string;
constructor(id: number, name: string) {
this.id = id;
this.name = name;
}
}
在这个例子中,id 是一个公共的只读属性,而 name 是一个私有的只读属性。
用途
readonly 修饰符的使用场景主要是在需要确保对象某些属性的不可变性时。例如,当你希望一个类的属性在初始化后不被修改,以防止数据被意外更改时,可以使用 readonly。特别是在大型代码库或多人协作的项目中,readonly 能够有效防止难以发现的错误和提升代码的健壮性。因此,这类面试题的目的是评估候选人是否了解如何在 TypeScript 中编写更加安全和稳定的代码。\n相关问题
🦆
TypeScript 中接口与类型别名的区别是什么?▷
🦆
TypeScript 中的 public,private 和 protected 修饰符有什么区别?▷
🦆
TypeScript 中的抽象类和接口有什么区别?▷
🦆
TypeScript 中的泛型是什么?如何使用?▷
🦆
TypeScript 中的装饰器Decorators是什么?▷