ts如何判断成员变量是只读属性?


export default class {
    getState(a:customType){ return this[a] }
    setState(a:customType, func:(a:number)=>number){ this[a] = func(this[a]) }
    private p088 = 0
    private p087 = 0
    private p086 = 0
    get p085(){ return this.p055*1+this.p006+this.p030 }
    get p084(){ return (this.p014+this.p022)*(1+this.p086)+this.p085*this.p086 }
    get p083(){ return this.p084+this.p085 }
    private p071 = 0
    private p070 = 0
    ...
}

其中p088,p087,p086不可修改,我如何写setState函数,可以判断this[a]可否修改,是否是只读属性? 希望判断为不可修改时直接return掉。

阅读 2.3k
1 个回答

不可以。
Typescript是类型申明语法,它只能进行类型的运算。
你要的是让类型参与程序运行,这肯定是不行的。
但是Typescript会确保你在给this[a]赋值时提示你是只读属性,不可赋值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题