我正在学习打字稿中的枚举并遇到了这个问题。 如果有人可以帮助我理解它,请告诉我。
enum Type {
UPPER = 1,
LOWER,
CAMEL = "camelcase",
}
let myType: Type;
myType = 1; --- this is valid
myType = "camelcase" --- this is not
你能帮我理解为什么这不起作用吗?
我尝试检查各种资源和文档,但不知何故我没有找到正确的解释。我什至与人工智能助理交谈过,但也没有帮助。
字符串枚举成员不会获得生成的反向映射。如果您看到编写枚举后生成的编译后的 Javascript 代码,您会注意到反向映射是为编号枚举创建的,而不是为字符串枚举创建的(对于您的情况为
CAMEL
):
"use strict";
var Type;
(function (Type) {
Type[Type["UPPER"] = 1] = "UPPER";
Type[Type["LOWER"] = 2] = "LOWER";
Type["CAMEL"] = "camelcase";
// Notice ^^^^^
})(Type || (Type = {}));
let myType;
myType = 1;
myType = "camelcase";