首页 > 解决方案 > 使用 TypeScript 进行反应,不要使用 {} 作为类型。{

问题描述

在使用 React 和 TypeScript 时,我的 Contact 组件中出现 ESlint 错误Don't use `{}` as a type. `{}` actually means "any non-nullish value".

该组件没有任何道具。

export default class Contact extends React.Component<{}, MyState> {
    constructor(props = {}) {
        super(props);
        this.state = {
            signedUp: false,
        };
    }
}

我尝试null改用,但这会引发其他 ESLint 错误。

标签: reactjstypescripteslintlint

解决方案


经过大量挖掘,我发现了以下 GitHub 问题。

通过向您添加以下内容,您.eslintrc.js可以忽略该规则。建议使用配置使此规则​​仅适用于 React 组件。这将确保其他地方的强类型。

  "rules": {
    "@typescript-eslint/ban-types": [
      "error",
      {
        "extendDefaults": true,
        "types": {
          "{}": false
        }
      }
    ]
  }
}

来源:https ://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492


推荐阅读