打字稿:将枚举映射到类的属性键

时间:2020-08-14 10:00:58

标签: typescript enums typescript-generics

假设我们有一个如下所示的枚举:

export enum HeroActionEnum {
  STRIKE = 'strike',
  HIDE = 'hide',
  RUN = 'fly',
  TACKLE = 'tackle',
}

现在我们创建一个新类,其属性具有与HeroActionEnum中表示的键完全相同的键。

export class Hero {
  [HeroActionEnum.STRIKE]: EventEmitter<void>;
  [HeroActionEnum.HIDE]: EventEmitter<void>;
  [HeroActionEnum.RUN]: EventEmitter<void>;
  [HeroActionEnum.TACKLE]: EventEmitter<void>;
  ...
}

DRY原则对此并不满意。我实际上想总结一下这些键:

export class Hero {
  [key in HeroActionEnum]: EventEmitter<void>;
  ...
}

我尝试了很多,但是到目前为止我什么都没做。预先感谢您的帮助!

0 个答案:

没有答案