有没有一种方法可以轻松地从 Typescript 中的枚举创建联合类型?

Is there a way to easilly create union type from enum in Typescript?

当我写 Typescript 时,我经常 运行 遇到某种枚举的情况,我想从这个枚举中生成联合类型。我尝试寻找可以为我完成的实用程序类型,但我找不到任何实用程序类型。有更简单的方法吗?

enum Person {
  Name = "Adam",
  Age = 32
}

type Something = Person.Name | Person.Age;

我知道这个例子相当简单,但我经常使用带有条目基调的枚举,手工完成既不愉快也不易于维护。

枚举类型本身已经等同于该枚举所有成员的并集。

如果您尝试使用 Exclude 从枚举中删除一个成员,您甚至可以看到实际效果:

enum Person {
  Name = "Adam",
  Age = 32
}

type Something = Exclude<Person, Person.Age> // Person.Name

Playground Link