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
相关产品推荐
相关产品推荐

