Задать вопрос
@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

Помогите, пожалуйста, с правильной типизацией
  • Вопрос задан
  • 572 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽