Перечисления для действий Redux в TypeScript - PullRequest
0 голосов
/ 02 марта 2020

В последнее время я прочитал много статей, в которых выражается недовольство enum TypeScript. В частности, мне сказали, что следующие действия были бы плохими для действий Redux:

export enum TODOS {
  ADD: 'ADD',
  REMOVE: 'REMOVE',
}

и вместо этого предпочитать строковые литералы:

export const ADD_TODO = 'ADD_TODO';
export const REMOVE_TODO = 'REMOVE_TODO';

Это лучшая практика, и если да, то , Почему? По моему наивному мнению, преимуществом наличия enums было бы отсутствие коллизий и первоклассного пространства имен (например, две одинаково действующие службы, скажем, две службы базы данных, могли бы экспортировать действия CREATE_TABLE, без необходимости удлинять имя с пространством имен для предотвращения столкновений)

Я не могу найти ссылку на сообщение в блоге, но основные принципы c были:

  • Назначение любой цифры c значение для перечисления:
enum Direction {
  Up,
  Down,
  Left,
  Right,
}

const strangeWay = 27 as Direction

Конечно, не относится к строковым перечислениям

  • "Последствия выполнения", из которых я не могу вспомнить приведенный аргумент , Вот сообщение Reddit , в котором говорится то же самое, но не дается никакого объяснения того, каковы значения времени выполнения, просто нужно рассмотреть больше, чем строки

РЕДАКТИРОВАТЬ : Обратите внимание, что я не ищу мнения. Я ищу последствия выбора такой модели

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