首页 > 解决方案 > 按钮上不存在属性“类型”

问题描述

我有这个按钮组件:

export interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
    small?: boolean;
}

class Button extends React.Component<ButtonProps> { ... }

但是当我尝试这样做时:

<Button type="submit"></Button>

我收到此错误:

类型“IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly<{ children?: ReactNode; 上不存在属性“类型” }>'

为什么?不是type属性的一部分React.HTMLAttributes<HTMLButtonElement>吗?设置此属性的正确/推荐方法是什么?

标签: reactjstypescriptdefinitelytyped

解决方案


export interface ButtonProps
  extends React.DetailedHTMLProps<
    React.ButtonHTMLAttributes<HTMLButtonElement>,
    HTMLButtonElement
  > {
  small?: boolean
}

class ButtonZ extends React.Component<ButtonProps> {
  render() {
    return <></>
  }
}

如果您使用 VSCode 作为 IDE,将鼠标悬停在 HTML 组件上并检查工具提示是查看类型和道具的好方法。


推荐阅读