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

React+TypeScript中ESLint提示必须解构props,是否必须这么做?

关于React+TypeScript组件中ESLint“Must use destructuring props”提示的处理方案

方案一:解构Props(ESLint推荐的规范写法)

这个规则的核心目的是让代码更简洁易读,避免重复书写props.前缀。针对你的组件场景——既要单独使用title属性,又要把其余props传递给原生button——解构写法非常适配,修改后的代码如下:

import React from 'react';

interface IButtonProps
  extends React.DetailedHTMLProps<
    React.ButtonHTMLAttributes<HTMLButtonElement>,
    HTMLButtonElement
  > {
  title: string;
}

// 解构出title和剩余的props
const PrimaryButton: React.FC<IButtonProps> = ({ title, ...rest }) => {
  return (
    <button type="submit" {...rest}>
      {title}
    </button>
  );
};
export default PrimaryButton;

这种写法既符合ESLint规则,代码逻辑也更清晰,同时保留了原生button所有属性的传递能力。

方案二:禁用该ESLint规则

如果你或团队认为这个规则不符合项目风格,也可以选择禁用:

  • 局部禁用:在触发提示的代码行上方添加注释,仅对当前组件生效:
    // eslint-disable-next-line react/destructuring-assignment
    const PrimaryButton: React.FC<IButtonProps> = (props: IButtonProps) => {
      // ... 原代码
    };
    
  • 全局禁用:在项目的.eslintrc(或.eslintrc.json)文件中修改规则,让整个项目不再检查这个规范:
    {
      "rules": {
        "react/destructuring-assignment": "off"
      }
    }
    

不过建议仅在团队统一风格或特殊场景下才选择禁用,毕竟解构props是React社区普遍认可的简洁写法。

内容的提问来源于stack exchange,提问作者mohamed daadaa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:37:12