Может ли цикл создавать создателей действий с типизированными данными? - PullRequest
0 голосов
/ 09 мая 2019

Единственное, что меня раздражает в Redux, это то, сколько работы требуется для создания нового действия.В JS я создал цикл, который превращает всех создателей моих действий для меня в объект, полный строк типа:

export function buildActionCreators(types) {
  const creators = {};
  Object.values(types).forEach(type => {
    creators[camelCase(type)] = payload => ({ type, payload });
  });
  return creators;
}

Я перехожу на Typescript и мне нравится, как я могу печатать полезную нагрузку - таким образомизбегая очень распространенной ошибки отправки слишком малой информации редуктору Redux.

Я надеялся, что дженерики позволят мне напечатать мои полезные данные в моей функции buildActionCreators, но TS не позволяет передавать типы в качестве значений,что, кажется, означает, что это невозможно без какого-либо генератора кода.

Вот некоторый псевдокод того, что я хотел бы сделать:

export function buildActionCreators(typesMap): ActionCreatorsMap {
  const creators: ActionCreatorsMap = {};
  Object.keys(typesMap).forEach(StringType: string => {
    const PayloadType = typesMap[StringType];
    creators[camelCase(stringType)] = (payload: PayloadType) => ({
      type: StringType,
      payload
    });
  });
  return creators;
};

Я все еще новичок вТС, так что, может быть, есть выход, чтобы сделать то, что я ищу?Спасибо за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...