防止在函数外部对函数进行赋值

    1. class person{
    2. readonly age: number = 18
    3. constructor(age: number){
    4. this.age = age
    5. }
    6. //readonly setAge(){ //err:readonly只可以出现在属性声明或索引签名中
    7. //this.age=20 //err:无法分配到“age”,因为它是只读属性
    8. //}
    9. }

    注意:1.readonly关键字只修饰属性,不修饰方法
    2.如果age后不加number的类型注解,则age的属性类型为18(字面量类型)
    3.接口或者{}表示的对象类型可以使用readonly属性

    1. //修饰接口
    2. interface person{
    3. readonly name: string
    4. }
    5. let obj: person={
    6. name:'jack'
    7. }
    8. obj.name='rose' //err:无法分配发到name,因为他是只读属性