Readonly TypeScript · 工具类型
把对象类型的所有顶层属性变成只读,重新赋值会被类型检查拦住;但如果属性值是对象或数组,其内部内容仍可修改。
怎么用
Readonly<类型>
小例子
interface 点 {
x: number;
y: number;
}
let p: Readonly<点> = { x: 1, y: 2 };
p.x = 3;
类型检查结果
类型检查结果:无法分配到"x",因为它是只读属性
提醒:只冻结顶层属性,嵌套对象/数组的内容仍可变;要深度不可变需自己递归实现或使用第三方类型
官方文档:https://www.typescriptlang.org/docs/handbook/utility-types.html#readonlytype
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← TypeScript全部词条