打字稿抱怨函数参数类型

时间:2021-04-30 11:52:34

标签: reactjs typescript

我有 FileUpload 组件,它接受函数以便在其中创建一个功能组件。当我尝试使用它时,Typescript 抱怨 onOpen 作为参数传递给该函数。

<块引用>

绑定元素“onOpen”隐式具有“任何”类型。

<FileUpload onChange={onFileSelect}>
  {({ onOpen }) => (    //<------- Error
    <Button onClick={() => onOpen()}>
      Upload image
    </Button>
  )}
</FileUpload>

我尝试了很多选项来给它一个 () => void; 或类似的类型,但我就是想不通......你能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

你可以像这样重构你的代码。这样你就声明了一个定义回调参数结构的接口

interface FileUploadCallbackProps {
  onOpen: () => void;
}

<FileUpload onChange={onFileSelect}>
  {(props: FileUploadCallbackProps) => (
    <Button onClick={() => props.onOpen()}>Upload image</Button>
  )}
</FileUpload>;