MST
星途 面试题库

面试题:TypeScript中readonly关键字在对象属性上的应用

在TypeScript中,有一个包含多个属性的对象,要求使用readonly关键字确保其中一个特定属性在初始化后不可变,请编写相关代码示例,并解释为什么使用readonly能避免值变错误。
23.0万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 定义一个对象类型,其中name属性为readonly
type User = {
    readonly name: string;
    age: number;
};

// 创建一个User对象
const user: User = {
    name: 'John',
    age: 30
};

// 尝试修改readonly属性name,这会导致编译错误
// user.name = 'Jane'; 

解释为什么使用readonly能避免值变错误

  1. 编译时检查:TypeScript是静态类型语言,在编译阶段会进行类型检查。当属性被标记为readonly时,TypeScript编译器会阻止任何试图修改该属性的操作。如果在代码中尝试修改readonly属性,编译器会报错,这使得错误在开发阶段就被发现,而不是在运行时出现难以调试的逻辑错误。
  2. 保证数据一致性:在很多场景下,某些属性的值在对象初始化后不应被改变,比如用户的唯一标识、配置项等。使用readonly关键字可以明确表达这种意图,确保代码的其他部分不会意外修改这些属性,从而保证数据的一致性和程序逻辑的正确性。