Получить строку из TypeScript String Enum - PullRequest
0 голосов
/ 18 апреля 2019

Строка перечисления может быть получена как показано ниже:

enum eURL {
    projects
    }

let x:string = eURL[eURL.projects]; //x= 'projects'

Однако, если я использую строковые перечисления, как в примере ниже, как я могу получить строковое значение "Help Me" из перечисления?

enum myEnum {
    projects = "Help Me",
}

let x:string = myEnum[myEnum.projects]; // returns undefined.

Ответы [ 2 ]

2 голосов
/ 18 апреля 2019

Вы просто используете его напрямую:

let x:string = myEnum.projects;

Живая копия на игровой площадке TypeScript .

0 голосов
/ 18 апреля 2019

Причина, по которой первый пример работает, а второй нет, связана с тем, как машинописный текст переносит обычное перечисление против строкового перечисления.Нормальный:

(function (myEnum) {
    myEnum[myEnum["projects"] = 0] = "projects";
})(myEnum || (myEnum = {}));

Он использует индекс в качестве ключа, а также значение в качестве ключа и выполняет сопоставление от значения к индексу и индекс к значению и создает объект, который выглядит следующим образом:

{0: "projects", projects: 0}

String:

(function (myEnum) {
    myEnum["projects"] = "Help Me";
})(myEnum || (myEnum = {}));

Перечисление строк с другой стороны, карта только ключ к значению и производит это:

{projects: 0}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...