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。
答案 0 :(得分:1)
如果重新声明类中的字段,则需要为其提供类型注释,或者编译器将根据赋值为您推断一个,它不会使用基类中声明的类型({{1}在这种情况下)
React.Component
虽然你最好在构造函数中初始化字段而不是重新定义它。