【问题标题】:Using arrow function with class get | Reducing code for defining class constants [duplicate]使用箭头函数和类 get |减少用于定义类常量的代码[重复]
【发布时间】:2019-02-17 07:40:11
【问题描述】:

我正在尝试在 javascript 中创建常量。我发现this answer 很有帮助。之后,我写了这样的东西。

const ERR1 = 'Error 1',
  ERR2 = 'Error 2',
  ERR3 = 'Error 3',
  ERR4 = 'Error 4'

class Error {
  static get ERR1 () {
    return ERR1
  }

  static get ERR2 () {
    return ERR2
  }

  static get ERR3 () {
    return ERR3
  }

  static get ERR4 () {
    return ERR4
  }
}

虽然这很完美,但我想减少代码,因为它非常冗长。可能是一个班轮在课堂上使用这样的箭头函数。

static get ERR1 = () => ERR1
static get ERR2 = () => ERR2
...

但是,这给出了错误说明Unexpected token =。用static get ERR1: () => ERR1 和同样的错误Unexpected token : 尝试了同样的错误

要回答这个问题,任何一个都足够了。

  • 为什么这是一个错误?
  • 是否可以使用箭头语法编写类获取?
  • 有没有更短的方式来定义常量?

【问题讨论】:

  • 您链接的答案显示了将常量放在class 上的多种方法,包括使用实验性的类字段提案语法,它简洁地击败了一切。是的,你不能使用 get 语法的箭头函数。

标签: javascript class ecmascript-6 arrow-functions


【解决方案1】:

Javascript 语法禁止 getter 成为箭头函数(请参阅https://stackoverflow.com/a/33827643/1358308 了解更多信息)

我可能会这样做:

const Error = Object.freeze({
  ERR1: 'Error 1',
  ERR2: 'Error 2',
  ERR3: 'Error 3',
  ERR4: 'Error 4',
})

【讨论】:

  • 我实际上希望它成为一个类。 Error里面还有一个构造函数,还有一些其他的方法。
猜你喜欢
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多