Добавление типа потока для действия Redux Thunk с возвращаемым значением - PullRequest
3 голосов
/ 01 июня 2019

У меня есть действие thunk, которое после отправки других действий возвращает boolean.Я не уверен, как напечатать это с Flow.Это действие:

export const checkAuthStatus = (): ThunkAction => async (dispatch) => {
  const token = await getFromStorage('authToken');
  const user = await getFromStorage('authUser', true);
  const promptSkipped = await getFromStorage('promptSkipped', true);

  const loggedIn = token && user;

  if (loggedIn) {
    dispatch(setLoggedIn(token, user));
    dispatch(getUserInBackground());
  }

  return promptSkipped;
};

Тип возврата ThunkAction происходит из этого фрагмента в Документах Flow , где Action в настоящее время включает типы для всех не-Thunk действий.:

type GetState = () => State;
type PromiseAction = Promise<Action>;
type ThunkAction = (dispatch: Dispatch, getState: GetState) => any;
type Dispatch = (action: Action | ThunkAction | PromiseAction | Array<Action>) => any;

Этот фрагмент работает, если бы я просто позвонил await checkAuthStatus(), но если я попытаюсь присвоить возвращаемое значение, например const skipped = await checkAuthStatus(), я получу:

Cannot call await with `checkAuthStatus()` bound to `p` because  `ThunkAction` [1] is incompatible with  `Promise` [2].Flow(InferError)

Любая помощьценится.


Редактировать : Вот воспроизводимый пример .

Мне нужна строка 30 для ошибки при попытке добавитьот string до boolean, но, как вы можете видеть, выдает вышеуказанную ошибку.

...