Tengo estas dos enumeraciones:
enum foo { bar, baz } enum fiz { ... } ¿Cómo puedo asegurarme de que fiz tiene las mismas claves que foo ? Intenté agregar una interfaz, pero no tuve suerte con la asignación.
Puedes usar un mapa.
enum foo { bar, baz, } const fiz = new Map<foo, string>([ [foo.bar, 'value1'], [foo.baz, 'value2'], ]);O puedes hacer algo como esto
enum Foo { A = "ActivityCode.Foo.A", B = "ActivityCode.Foo.B", C = "ActivityCode.Foo.C", } enum Bar { A = "ActivityCode.Bar.A", B = "ActivityCode.Bar.B", C = "ActivityCode.Bar.C", } enum Baz { A = "ActivityCode.Baz.A", B = "ActivityCode.Baz.B", C = "ActivityCode.Baz.C", } const ActivityCode = { Foo, Bar, Baz, }; console.log(ActivityCode.Foo.A);Según su comentario , creo que este enfoque funcionará bien para usted:
const keys = ['foo', 'bar', 'baz'] as const; type Key = typeof keys[number]; // "foo" | "bar" | "baz" type ObjectWithSameKeys<ValueType> = Record<Key, ValueType>; const labels: ObjectWithSameKeys<number> = { foo: 1, bar: 2, baz: 3, }; const names: ObjectWithSameKeys<string> = { foo: 'one', bar: 'two', baz: 'three', };