gpt4 book ai didi

javascript - typescript enum反编译函数如何一次创建2个键值对?

转载 作者:搜寻专家 更新时间:2023-10-30 21:42:54 24 4
gpt4 key购买 nike

在 typescript 中:

http://www.typescriptlang.org/Playground

enum Role {Employee = 3, Manager =5, Admin = 7}
console.log('Roles:', Role[3])

转译成:

var Role;
(function (Role) {
Role[Role["Employee"] = 3] = "Employee";
Role[Role["Manager"] = 5] = "Manager";
Role[Role["Admin"] = 7] = "Admin";
})(Role || (Role = {}));
console.log('Roles:', Role[3]);

我只是不明白这个函数是如何工作的。

<强>1。如何一次创建 2 个键值对: enter image description here

<强>2。为什么scope传入的是(Role || (Role = {})?

最佳答案

评估时:

Role[Role["Employee"] = 3] = "Employee";

内部:

Role["Employee"] = 3

Role.Employee 设置为 3,但此赋值也返回值 3。因此,在评估作业后,实际上您剩下的是:

Role[3] = "Employee";

有关详细信息,请参阅赋值运算符 specs .

最后 (Role || (Role = {}),求值为 {}。这保证了 Role,对象传递给函数,无论出于何种原因都不是 null

关于javascript - typescript enum反编译函数如何一次创建2个键值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34736177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com