对属性成员除了可以用 private、protected 去控制它的访问级别,还可以使用 readonly 关键词把成员设置成只读的。如果说属性已经有了访问修饰符 readonly 应该跟在访问修饰符的后面,对于只读属性我们可以选择在类型声明的时候直接通过等号的方式去初始化,也可以在构造函数当中去初始化,两者只能选其一。并且初始化以后就不能被再修改了,不管是在内部还是在外部都是不能被再修改的。
class Person {
public name: string
private age: number
protected readonly gender: boolean
construnctor (name: string, age: number) {
this.name = name
this.age = age
this.gender = true
}
sayHi (mag: string): void {
console.log(`my name is ${name}, ${msg}`)
}
}