Нет, вы не можете преобразовать имя перечисления в строку, так как информация о типе сохраняется только во время компиляции. Вы должны передать дополнительный параметр, указывающий, какое перечисление вы используете.
Но вы можете использовать квадратные скобки для преобразования значения перечисления в строку и обратно:
Fiddle
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]);
Этот код компилируется в:
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]);