enums - coffeescript 和枚举值

标签 enums coffeescript

我在coffeescript( http://coffeescript.org/ )中玩弄枚举/常量的概念,并想出了以下看起来没问题的代码。对于枚举适合的内容,我如何增强它以使其更好?谷歌对此的搜索尚未显示满意。

class SomeService

  @SomeEnumValue : 400
  @SomeOtherValue : 402

  someFunc: ->
    SomeService.SomeEnumValue 

ok = new SomeService()
alert ok.someFunc()

if (ok.someFunc() == SomeService.SomeEnumValue) then alert ' some enum value'

最佳答案

枚举的整个概念在动态语言中是无用的,元组、类型列表、映射和许多其他东西也是如此,而 Javascript (Coffeescript) 是动态的。在使用动态语言时,您只需要忘记类型检查并使用现有的更通用的结构来解决您的问题。使用数组而不是列表和元组,使用对象而不是映射和枚举,并且只相信传递给函数的值的类型,但要对代码进行大量的单元测试。无论好坏(更糟的是 IMO),这就是这里的工作方式。

在您的情况下,我建议您将值存储在单例对象中,如下所示:

HTTPStatusCodes = 
  ok : 200
  badRequest : 400
  unauthorized : 401

并像这样访问它:
class SomeService
  okCode: ->
    HTTPStatusCodes.ok
  failureCodes: ->
    code for key, code of HTTPStatusCodes when code >= 400

关于enums - coffeescript 和枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9369780/

相关文章:

coffeescript - Coffeescript 中的静态方法和继承

javascript - 如何在 CoffeeScript 中编写这个简单的 javascript 代码?

c# - Console.WriteLine(Enum.Value) 在 C# 和 VB.Net 中给出不同的输出

enums - 在 Swift 中,是否可以在编译时为枚举的关联值预填充值?

c# - 在 C# 中使用 "default"作为枚举

javascript - 使用 CoffeeScript 为选择框选择默认值

java - 默认情况下,枚举中变量的访问级别是多少

php - php中的通用枚举类型

javascript - 我非常简单的 Jasmine 测试失败并显示消息 'Expected 0 to be 1.'

javascript - Rails 4 CoffeeScript 点击不起作用