[英]TypeScript - weird behaviour when iterating over an enum
我刚刚在尝试迭代枚举时注意到了这一点。
说你有:
enum Gender {
Male = 1,
Female = 2
}
你也是:
for (let gender in Gender) {
console.log(gender)
}
这将运行 4 (?) 次。 首先打印字符串 (!) 表示 1 和 2,然后打印字符串男性和女性。
我只能假设这是有意的。 我的问题是为什么会这样? 这个(在我看来)奇怪的实现背后的原因是什么?
JS 没有枚举。 TS 将您的枚举编译为:
var Gender;
(function (Gender) {
Gender[Gender["Male"] = 1] = "Male";
Gender[Gender["Female"] = 2] = "Female";
})(Gender || (Gender = {}));
您可以看到的地方有 4 个键(1,2,Male,Female)。
您可以使用此站点来检查 TS 到 JS 的编译输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.