Как создать перечисление Super Set, используя существующее перечисление в Typescript - PullRequest
0 голосов
/ 28 мая 2020

Мне нужно создать перечисление, используя другое, например, как показано ниже

enum problems{
   eazy,
   medium,
   hard,    
}

enum moreProblems{
  eazy,
  medium,
  hard,
  frenzy 

}

Мне нужно перечислить moreProblems с помощью перечисления Problems

Ответы [ 2 ]

0 голосов
/ 30 мая 2020

Пример использования: когда перечисление B должно содержать все значения из перечисления A и некоторые дополнительные значения.

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

const GameResultEnum = {
       WINNER: 'Winner',
       LOSER: 'Loser'
       } as const;  
type GameResultEnum = typeof GameResultEnum[keyof typeof GameResultEnum];

const SoccerGameResultEnum = { ...GameResultEnum, DRAW: 'Draw' } as const;
type SoccerGameResultEnum = typeof SoccerGameResultEnum[keyof typeof 
SoccerGameResultEnum];

Реализация:

let gameResult: GameResultEnum, soccerGameResult: SoccerGameResultEnum;

gameResult = GameResultEnum.WINNER; // no errors 
gameResult = SoccerGameResultEnum.WINNER; // SoccerGameResultEnum can also be used
gameResult = SoccerGameResultEnum.DRAW; // correctly throws errors

Я нашел решение здесь

0 голосов
/ 28 мая 2020

Вы не можете наследовать от перечислений в TypeScript, но может ли помочь использование объединений?

enum problems{
   eazy,
   medium,
   hard,    
}

enum moreProblems{
  eazy,
  medium,
  hard,
  frenzy 
}
const x: problems | moreProblems= problems.eazy;

const y: problems | moreProblems= moreProblems.frenzy ;
...