我有一个函数(反应钩子):
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
的第一个参数中的ValuesType
[1]与onLeavePage
[2]不兼容。我认为flowjs无法理解TValue在handleLeavePage中是通用的。
如何解决?
最佳答案
尝试this
而不是声明handleLeavePage
参数的类型,而键入useHandles
函数的输出。