找到了这个解决方案,但我认为这是一个hack:
export const getInitialValues = getFormInitialValues('formName') as (state: State) => FormValues;
将getFormInitialValues
与TypeScript一起使用的正确解决方案是什么?
答案 0 :(得分:0)
看看type declaration for getFormInitialValues
:
export const getFormInitialValues: DataSelector;
其中:
export type DataSelector<FormData = {}, State = {}> = (formName: string, getFormState?: GetFormState) => (state: State) => FormData;
看起来DataSelector
可能是通用函数类型,因此您可以像getFormInitialValues<FormValues, State>('formName')
那样称呼它,但它被定义为通用类型别名,其中类型参数设置为其默认值。正确的定义是:
export type DataSelector = <FormData = {}, State = {}>(formName: string, getFormState?: GetFormState) => (state: State) => FormData;
我看到错误是在this PR中引入的。考虑提交PR以更正文件中的所有类型别名。同时,您可以将类型的副本添加到项目中,进行修改,然后在package.json
like this中进行注册。