Причина, по которой первый пример работает, а второй нет, связана с тем, как машинописный текст переносит обычное перечисление против строкового перечисления.Нормальный:
(function (myEnum) {
myEnum[myEnum["projects"] = 0] = "projects";
})(myEnum || (myEnum = {}));
Он использует индекс в качестве ключа, а также значение в качестве ключа и выполняет сопоставление от значения к индексу и индекс к значению и создает объект, который выглядит следующим образом:
{0: "projects", projects: 0}
String:
(function (myEnum) {
myEnum["projects"] = "Help Me";
})(myEnum || (myEnum = {}));
Перечисление строк с другой стороны, карта только ключ к значению и производит это:
{projects: 0}