猿问

Flow js 不适用泛型

我有一个功能(反应钩子):


function useHandles<TPreparedValues, TValues>({

    onReject,

    makeData,

}: ArgsType<TPreparedValues, TValues>) {

    const handleLeavePage =  (formData: TValues) => onReject(makeData(formData))


    return {

      handleLeavePage

    }

}

其中 ArgsType 是:


type ArgsType<TPreparedValues, TValues> = {

    onReject: (TPreparedValues) => Promise<void>,

    makeData: TValues => TPreparedValues

};

然后我使用这个钩子:


const {

    handleLeavePage,

} = useDocumentHandles<DocumentEditInputType, ValuesType>({

    onReject,

    makeData,

})

如您所见,我定义了TValues = ValuesType。当然,flowjs 应该从onReject输入中猜测它。


但是当我使用handleLeavePage 时,我收到一个错误: TValues[1] 与ValuesType[2] 在 property 的第一个参数中不兼容 onLeavePage。


我认为flowjs不明白,TValue是通用handleLeavePage。


如何解决?


眼眸繁星
浏览 158回答 1
1回答

喵喵时光机

试试这个不要声明handleLeavePage参数的类型,而是输入useHandles函数的输出。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答