整数枚举值有效,但字符串枚举值无效

问题描述 投票:0回答:1

我正在学习打字稿中的枚举并遇到了这个问题。 如果有人可以帮助我理解它,请告诉我。

enum Type {
  UPPER = 1,
  LOWER,
  CAMEL = "camelcase",
}
let myType: Type;
myType = 1; --- this is valid
myType = "camelcase" --- this is not

你能帮我理解为什么这不起作用吗?

我尝试检查各种资源和文档,但不知何故我没有找到正确的解释。我什至与人工智能助理交谈过,但也没有帮助。

javascript typescript enums
1个回答
0
投票

字符串枚举成员不会获得生成的反向映射。如果您看到编写枚举后生成的编译后的 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";

Ts游乐场

© www.soinside.com 2019 - 2024. All rights reserved.