繁体   English   中英

TypeScript - 迭代枚举时的奇怪行为

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM