【发布时间】:2016-12-23 22:32:14
【问题描述】:
阅读Javascript中处理ENUM Type的"recommended way",我仍然不确定,因为我可以将值与伪造的值进行比较,而我应该只与“枚举”类型的值进行比较:
var DaysEnum = {"monday":1, "tuesday":2, "wednesday":3, ...}
Object.freeze(DaysEnum)
switch( day ){
case "monday":
return "Hello"
case "tuesday":
return "Hi"
case "blahblahday":
return "No"
}
我切换到比较的字符串(“monday”,“tuesday”,“blahblahday”)完全不受我的“枚举类型:DaysEnum”的影响,可以由用户提供,这可能会导致一些微妙的解释器未发现的错误(如拼写错误)。
有没有办法拥有/锁定 Enum 对象的唯一索引值?
【问题讨论】:
-
如果你想避免输入错误,我认为你需要一个好的 IDE,而不是试图用解释器来做到这一点。例如。我通过您的代码
switch (day){ case DaysEnum.m[onday...] }使用 webstorm 自动完成。 -
谢谢,但这不是关于错误输入,而是关于枚举值的唯一性(阅读:任何具有特定值的字符串都可以符合我的枚举,恕我直言,这很糟糕)
-
不是那不好,但有点不受欢迎
标签: javascript enums