面试题答案
一键面试// 定义一个对象类型,其中name属性为readonly
type User = {
readonly name: string;
age: number;
};
// 创建一个User对象
const user: User = {
name: 'John',
age: 30
};
// 尝试修改readonly属性name,这会导致编译错误
// user.name = 'Jane';
解释为什么使用readonly能避免值变错误
- 编译时检查:TypeScript是静态类型语言,在编译阶段会进行类型检查。当属性被标记为
readonly
时,TypeScript编译器会阻止任何试图修改该属性的操作。如果在代码中尝试修改readonly
属性,编译器会报错,这使得错误在开发阶段就被发现,而不是在运行时出现难以调试的逻辑错误。 - 保证数据一致性:在很多场景下,某些属性的值在对象初始化后不应被改变,比如用户的唯一标识、配置项等。使用
readonly
关键字可以明确表达这种意图,确保代码的其他部分不会意外修改这些属性,从而保证数据的一致性和程序逻辑的正确性。