对象文字的属性'图表'暗中有一个“任何[]'输入反应

时间:2018-03-13 06:04:54

标签: reactjs typescript

ide:vscode

打字稿:2.7.1

反应:16.3.0-alpha.1

interface IState {
   data: number[];
}
class RawCanvas1 extends React.Component<undefined, IState> {
  constructor(props: undefined) {
  super(props);
  this.state = {
    data: []  // this right!
    }
  } 
}

class RawCanvas2 extends React.Component<undefined, IState> {
  constructor(props: undefined) {
  super(props);
  } 
  state = {
    data: [] // [ts] Object literal's property 'data' implicitly has an 'any[]' type.
  }
}

但是编译器可以推断出状态必须有一个数据:[] field。

1 个答案:

答案 0 :(得分:1)

如果重新声明类中的字段,则需要为其提供类型注释,或者编译器将根据赋值为您推断一个,它不会使用基类中声明的类型({{1}在这种情况下)

React.Component

虽然你最好在构造函数中初始化字段而不是重新定义它。