无法分配给“ initialState”,因为它是只读属性

时间:2019-07-16 02:55:53

标签: typescript

在方法中运行时,无法在构造函数中分配只读属性

打字稿版本为3.4.1

class Example {
   readonly initialState: any
   constructor(){
      this.someMethod()
   }
   private someMethod(){
     this.setState({
       initialState: 'someState' // Cannot assign to 'initialState' because it is a read-only property
     })
   }

}

1 个答案:

答案 0 :(得分:0)

readonly属性只能是initialized in place during declaration, or inside the constructor。这样做的理由是,可以从代码中的其他位置调用该方法,然后尝试再次设置属性值,因此TypeScript会完全阻止它。

PS。我相信代码只是没有正确地复制和粘贴,因为您的类中没有setState()方法。您的代码将无法运行。我假设您的意思是说this.initialState = 'someState'。如果您想修改问题,可能会有不同的答案。