@qfrontend

Почему TypeScript выдаёт ошибку?

Приветствую) Почему TS выдаёт ошибку???????? Как правильно в данном случае писать?
Ошибки:
Свойство "payload" не существует в типе "UserAction".
Свойство "payload" не существует в типе "FetchUserAction"

interface UserState {
  loading: boolean;
  users: any[];
  error: null | string;
}
const initialState: UserState = {
  users: [],
  loading: false,
  error: null
};

enum UserActionTypes {
  FETCH_USERS = "FETCH_USERS",
  FETCH_USERS_SUCCESS = "FETCH_USERS",
  FETCH_USERS_ERROR = "FETCH_USERS",
}
interface FetchUserAction {
  type: UserActionTypes.FETCH_USERS;
}
interface FetchUserSuccessAction {
  type: UserActionTypes.FETCH_USERS_SUCCESS;
  payload: any[];
}
interface FetchUserErrorAction {
  type: UserActionTypes.FETCH_USERS_ERROR;
  payload: string;
}

type UserAction = FetchUserAction | FetchUserSuccessAction | FetchUserErrorAction;

export const userReducer = (
state = initialState, action: UserAction): UserState => {
  switch (action.type) {
    case UserActionTypes.FETCH_USERS:
      return { loading: true, users:[], error:null };
    case UserActionTypes.FETCH_USERS_SUCCESS:
      return { loading: false, users: action.payload, error:null };
    case UserActionTypes.FETCH_USERS_ERROR:
      return { loading: false, users:[], error: action.payload };
    default:
      return state;
  }
};


Битый час бьюсь(((( Не доходит в чём проблема
Делаю по курсу, всё как там... ошибок у автора нету..... у меня есть
Вот по этому курсу:
ТЫК
c 9 по 12 минуты этот участок кода в видео
Спасибо за ранее
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
bingo347
@bingo347
Ткнуть в доку лучше готового к копипасте ответа
enum UserActionTypes {
  FETCH_USERS = "FETCH_USERS",
  FETCH_USERS_SUCCESS = "FETCH_USERS",
  FETCH_USERS_ERROR = "FETCH_USERS",
}

У Вас во всех вариантах один и тот же литеральный тип, надо так:
enum UserActionTypes {
  FETCH_USERS = 'FETCH_USERS',
  FETCH_USERS_SUCCESS = 'FETCH_USERS_SUCCESS',
  FETCH_USERS_ERROR = 'FETCH_USERS_ERROR',
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы