如何在TypeScript中正确使用getFormInitialValues选择器?

时间:2018-08-24 12:43:35

标签: typescript redux-form

找到了这个解决方案,但我认为这是一个hack:

export const getInitialValues = getFormInitialValues('formName') as (state: State) => FormValues;

getFormInitialValues与TypeScript一起使用的正确解决方案是什么?

1 个答案:

答案 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中进行注册。