Flow js 不适用泛型

Flow js doesn`t apply generic

我有一个函数(react hook):

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 typing.

猜出来的

但是当我使用 handleLeavePage 时,我得到一个错误: TValues [1] 与 属性 onLeavePage.

的第一个参数中的 ValuesType [2] 不兼容

我认为 flowjs 不理解 TValue 在 handleLeavePage 中是通用的。

如何解决?

尝试this

不声明 handleLeavePage 参数的类型,而是键入 useHandles 函数的输出。