Obtener el nombre de Enum como cadena en TypeScript
Estoy tratando de encontrar una manera de convertir el nombre de un enum a una cadena. Si tengo el enum Response a continuación, ¿cómo puedo convertir o extraer 'Response' a una cadena? Una de mis funciones toma cualquier enum como entrada y necesito el nombre, no el tipo de enum, para ejecutar otro código.
enum Response
{
No = 0,
Yes = 1
}
Respuesta #1
No, no puedes convertir un nombre de enum a una cadena ya que la información de tipo solo se almacena durante la compilación. Tienes que pasar parámetros adicionales, especificando qué enum estás utilizando.
Pero puedes usar corchetes para convertir un valor de enumeración numérica a cadena y viceversa:
Violín
enum YesNo {
No = 0,
Yes = 1,
}
console.log(YesNo[YesNo.Yes]);
console.log(YesNo[YesNo.No]);
console.log(YesNo["Yes"]);
console.log(YesNo["No"]);
console.log(YesNo[1]);
console.log(YesNo[0]);
Este código se compila en:
var YesNo;
(function (YesNo) {
YesNo[YesNo["No"] = 0] = "No";
YesNo[YesNo["Yes"] = 1] = "Yes";
})(YesNo || (YesNo = {}));
console.log(YesNo[YesNo.Yes]);
console.log(YesNo[YesNo.No]);
console.log(YesNo["Yes"]);
console.log(YesNo["No"]);
console.log(YesNo[1]);
console.log(YesNo[0]);Respuesta #2
Object.keys({ Response })[0]; // 'Response'
