gpt4 book ai didi

javascript - 如何保证我的枚举定义在 JavaScript 中不会改变?

转载 作者:IT老高 更新时间:2023-10-28 11:10:00 25 4
gpt4 key购买 nike

以下是否会使对象满足枚举在 JavaScript 中的所有特征?比如:

my.namespace.ColorEnum = {
RED : 0,
GREEN : 1,
BLUE : 2
}

// later on

if(currentColor == my.namespace.ColorEnum.RED) {
// whatever
}

或者还有其他方法可以做到这一点吗?

最佳答案

从 1.8.5 开始可以 seal and freeze the object ,因此将上述定义为:

const DaysEnum = Object.freeze({"monday":1, "tuesday":2, "wednesday":3, ...})

const DaysEnum = {"monday":1, "tuesday":2, "wednesday":3, ...}
Object.freeze(DaysEnum)

瞧! JS 枚举。

但是,这并不妨碍您将不想要的值分配给变量,这通常是枚举的主要目标:

let day = DaysEnum.tuesday
day = 298832342 // goes through without any errors

确保更高程度的类型安全(使用枚举或其他方式)的一种方法是使用像 TypeScript 这样的工具。或 Flow .

不需要引号,但为了保持一致,我保留了它们。

关于javascript - 如何保证我的枚举定义在 JavaScript 中不会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/287903/

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