Свойство "type" не существует на кнопке

У меня есть этот компонент кнопки:

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

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

Но когда я пытаюсь сделать:

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

Я получаю такую ​​ошибку:

Свойство 'type' не существует для типа 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly ‹{children ?: ReactNode; }> '

Почему? Разве атрибут type не является частью React.HTMLAttributes<HTMLButtonElement>? Каков правильный / рекомендуемый способ установки этого атрибута?


person o01    schedule 22.04.2020    source источник


Ответы (1)


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

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

Если вы используете VSCode в качестве среды IDE, наведите указатель мыши на компонент HTML и изучите всплывающую подсказку - хороший способ увидеть типы и свойства.

person Damian Green    schedule 22.04.2020
comment
Спасибо :) Действительно ли необходимо, чтобы интерфейс расширялся React.DetailedHTMLProps, или этого будет достаточно React.ButtonHTMLAttributes<HTMLButtonElement>? - person o01; 23.04.2020