¿Puedo obtener la clave de enumeración de un valor asignado cuando uso cadenas de enumeración? [duplicar]

Dec 08 2020

¿Puedo obtener la clave de enumeración de un valor asignado cuando utilizo cadenas de enumeración? Necesito obtener qué clave se usa, no el valor de la cadena.

Ejemplo:

enum Widgets {
   Foo: 'this is foo',
   Bar: 'this is bar'
}

const current = Widgets.foo;
console.info(current); // 'this is foo';

// later on, I need to get the key of the enum used in current i.e. the value 'Foo', not the string value 'this is foo'

Demostración de Codesandbox

Respuestas

1 HienNguyen Dec 08 2020 at 07:48

Puede obtener la clave de enumeración mediante el uso

let key = Object.keys(Widgets)[Object.values(Widgets).indexOf(current)]

Manifestación https://stackblitz.com/edit/typescript-av8rkx