Búsqueda de sitios web

reactjs - Typescript: atributo type del elemento button


Me gustaría que un botón personalizado pudiera recibir opcionalmente el atributo type:

export interface ButtonProps {
  children: React.ReactNode;
  onClick?: (e: React.MouseEvent<HTMLElement>) => void;
  type: ??
}


export const Button: React.FunctionComponent<ButtonProps> = ({ children, ...buttonProps }) => {
  return <StyledButton {...buttonProps}>{children}</StyledButton>;
};

export default Button;

Lo mismo que con 'onClick', que está funcionando. Cualquier tipo que intento poner, aún así lanza un error. ¿Cuál es el tipo correcto para el atributo type?

Respuesta #1

Puedes escribir un botón en tu editor:

<button type='' />

y probablemente ctrl/comando + clic en el type, o pasar el cursor sobre el atributo type para ver su tipo.

    interface ButtonHTMLAttributes<T> extends HTMLAttributes<T> {
        autoFocus?: boolean | undefined;
        disabled?: boolean | undefined;
        form?: string | undefined;
        formAction?: string | undefined;
        formEncType?: string | undefined;
        formMethod?: string | undefined;
        formNoValidate?: boolean | undefined;
        formTarget?: string | undefined;
        name?: string | undefined;
        type?: 'submit' | 'reset' | 'button' | undefined;
        value?: string | ReadonlyArray<string> | number | undefined;
    }

También puedes ampliar las propiedades de tu componente:

export interface ButtonProps extends React.HTMLProps<HTMLButtonElement> {}

Puede que quiera sobrescribir o omitir los tipos que desee.

Artículos relacionados