Как правильно использовать селектор getFormInitialValues ​​с TypeScript? - PullRequest
0 голосов
/ 24 августа 2018

Нашел это решение, но я думаю, что это взлом:

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

Какое правильное решение для использования getFormInitialValues с TypeScript?

1 Ответ

0 голосов
/ 25 августа 2018

Посмотрите на объявление типа для 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;

Я вижу, ошибка была внесена в этот PR . Рассмотрите возможность отправки PR, чтобы исправить все псевдонимы типов в файле. В то же время вы можете добавить копию набранных текстов в свой проект, изменить их и зарегистрировать в package.json , например, .

.
...