Обратное отображение в строковом перечислении TypeScript - PullRequest
2 голосов
/ 21 февраля 2020

Согласно документации , перечисления строк TypeScript не должны выполнять обратное отображение. Но когда я запускаю следующий код в jsfiddle, он работает:

enum Person {
 firstName = "First Name",
 lastName = "Last Name",
}

document.querySelector("#app").innerHTML = Person["Last Name"];

Демонстрация: https://jsfiddle.net/u73x80e1/

Чего мне не хватает?

1 Ответ

0 голосов
/ 21 февраля 2020

JSFiddle, похоже, использует более старую версию TypeScript. Они генерируют следующее JS:

var Person;
(function (Person) {
    Person[Person["firstName"] = "First Name"] = "firstName";
    Person[Person["lastName"] = "Last Name"] = "lastName";
})(Person || (Person = {}));
document.querySelector("#app").innerHTML = Person["Last Name"];

Один и тот же код на TypeScript Playground генерирует следующее с каждой версией, которую вы можете выбрать:

var Person;
(function (Person) {
    Person["firstName"] = "First Name";
    Person["lastName"] = "Last Name";
})(Person || (Person = {}));
document.querySelector("#app").innerHTML = Person["Last Name"];

Похоже, это открытая проблема на их GitHub: https://github.com/jsfiddle/jsfiddle-issues/issues/1079. Этот поток утверждает, что они используют версию 1.7.3.

...