输入html组件的onClick函数

时间:2019-12-09 08:55:34

标签: reactjs typescript

每次我尝试在组件中像这样输入onClick之类的东西时:

export interface IClearButton extends SpaceProps {
  onClick: Function;
}

export const ClearButton: React.FC<IClearButton> = ({onClick}) => {
  return (
    <button onClick={onClick}>
      <SomeComponent />
    </button>
  );
};

我最终遇到这样的错误:

Type '{ onClick: Function; }' is not assignable to type 'IntrinsicAttributes & IClearButton & { children?: ReactNode; }'.
  Property 'onClick' does not exist on type 'IntrinsicAttributes & IClearButton & { children?: ReactNode; }'

目前,我最后只是说onClick: any,这不理想。

如何在我的类型定义中扩展固有的onClick类型或用Function强制覆盖它?

1 个答案:

答案 0 :(得分:1)

您应该将接口java.lang.IllegalArgumentException: Include vector the wrong length DetailedHTMLProps与泛型一起使用。

InputHTMLAttributes

在这种情况下,import React, { DetailedHTMLProps, InputHTMLAttributes } from 'react'; interface MyProps extends DetailedHTMLProps< InputHTMLAttributes<HTMLButtonElement>, HTMLButtonElement > { name: string; } 的类型将是onClick
为您创建了stackblitz