对象中的一些字段只能在创建的时候被赋值,那么可以用 readonly 定义只读属性
interface Zerb {
readonly id: number
name: string
age?: number //可选属性
[propName: string]: any //这里设置的是任意类型
}
let zerb: Zerb = {
id: 89757,
name: 'Tom',
gender: 'male' //对任意类型进行赋值
}
zerb.id = 9527 //id是只读的,所以这里会报错
只读的约束存在于第一次给对象赋值的时候,而不是第一次给只读属性赋值的时候: