У меня есть действие 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
, но, как вы можете видеть, выдает вышеуказанную ошибку.