@webivan1

Как правильно типизировать возвращаемое значение Thunk экшена?

Привет.

Ситуация такая:

1) Есть асинхронный action
type AppThunk<ReturnType = void> = ThunkAction<
  ReturnType,
  RootState,
  unknown,
  Action<string>
>

export const registerUserAsync = (form: RegisterFormType): AppThunk<Promise<RegisterFormType>> => {
  return dispatch => new Promise(resolve => {
    resolve(form);
  })
};


2) Есть функциональный компонент
const dispatch = useDispatch();
const onRegister = async (newFormData: RegisterFormType) => {
    const form: RegisterFormType = await dispatch(registerAction.registerUserAsync(newFormData));
};


Проблема в том, что const form: RegisterFormType подсвечивается TS и дальше не работает, то есть там distpach точно возвращает Promise, но TS не знает этого, указывая женерик dispatch<Promise<RegisterFormType>> он начинает ругаться на входной параметр экшен registerAction.registerUserAsync

Помогите, пожалуйста, с правильной типизацией
  • Вопрос задан
  • 552 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы