有没有办法初始化对象文字并同时声明其具有只读属性的接口?
例如
let a = { readonly b: 2, readonly c: 3 }
Run Code Online (Sandbox Code Playgroud)
您可以使用as const断言:
let a = { b: 2, c: 3 } as const // typed as { readonly b: 2; readonly c: 3; }
a.b = 2 //Cannot assign to 'b' because it is a read-only property.
Run Code Online (Sandbox Code Playgroud)
如果您只希望某些道具是只读的,那实际上是不可能的,您可以做的最好的事情是使用一个Object.assign包含只读属性而另一部分包含可变属性的 :
let a = Object.assign({ b: 2, c: 3 } as const, {
d: 0
});
a.b = 2 // err
a.d = 1 //ok
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2071 次 |
| 最近记录: |