小编Joh*_*efs的帖子

为什么打字稿允许我覆盖空状态对象?

我将此代码视为将空状态定义为空,但是当我编写此代码时,没有任何错误.

export default class extends Component<Props, {}> {
  state = {
    foo: "bar"
  };
}
Run Code Online (Sandbox Code Playgroud)

这也不是错误:

export default class extends Component<Props, {}> {
  constructor(props) {
    super(props);
    this.setState({ foo: "bar" });
  }
Run Code Online (Sandbox Code Playgroud)

我在这里显然不了解TypeScript.如果我向传递的状态对象添加一个参数,则两个错误都显示状态差异.似乎{}没有提供任何防止被覆盖的警惕.我想从lint的角度确保状态总是被输入并作为参数传递或在React Component的扩展中作为null,我该如何设置它?

state typescript ecmascript-6 reactjs

5
推荐指数
1
解决办法
254
查看次数

标签 统计

ecmascript-6 ×1

reactjs ×1

state ×1

typescript ×1