gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 01:19:50 26 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/1314187/

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