You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React TypeScript项目:ESLint require-default-props错误与defaultProps弃用冲突求助

解决办法

针对你遇到的ESLint规则与React官方警告的冲突问题,有以下几种可行方案:

方案1:全局关闭react/require-default-props规则

在TS+函数组件的场景下,这个规则属于冗余配置——TypeScript的可选属性+JavaScript默认参数已经能替代defaultProps的作用,无需额外声明。

修改你的ESLint配置文件(比如.eslintrc.js或.eslintrc.json):

module.exports = {
  // 其他配置...
  rules: {
    "react/require-default-props": "off"
  }
};

方案2:针对TypeScript文件单独关闭规则

如果不想全局关闭,可仅在TS/TSX文件中禁用该规则:

module.exports = {
  // 其他配置...
  overrides: [
    {
      files: ["*.ts", "*.tsx"],
      rules: {
        "react/require-default-props": "off"
      }
    }
  ]
};

方案3:组件内临时禁用规则(不推荐)

如果只是个别组件有这个问题,可在组件参数定义前添加注释禁用规则:

// eslint-disable-next-line react/require-default-props
const AccordionDemo = ({
  accoTriggerClass = "",
  accoItemClass = "",
  accoContentClass = "",
  // 其他必填props
}: AccordionDemoProps) => {
  // 组件逻辑
};

补充说明

Airbnb的react/require-default-props规则是为纯JavaScript组件设计的——在没有类型检查的环境下,它强制开发者为可选props声明默认值,避免出现undefined。但在TypeScript环境中,我们通过可选属性标记(?)+ 参数默认值已经完成了相同的约束,完全不需要依赖defaultProps,因此关闭该规则是合理的。

内容的提问来源于stack exchange,提问作者Jisoo P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 16:42:38