typescript - Konvertera strängenumtyp till unionstyp av enumvärden


Hur kan jag få en unionstyp av ett TypeScript-strängenum?

enum MyEnum {
  A = 'a', // Values are different from keys, so keyof will not help here.
  B = 'b',
}

Givet en enumtyp som den ovan, hur kan jag få unionstypen "a" | "b"?

Svar #1

både är ok

type enumValuesToUnion<T> = T extends `${infer R}` ? R :never

type enumValuesToUnion_<T> = `${T}`

type a = enumValuesToUnion<MyEnum>
type b = enumValuesToUnion_<MyEnum>

Relaterade artiklar