使用 super 时 coffeescript 中出现意外的其他情况

unexpected else in coffeescript when using super

我正在使用 backbone.js,用 coffeescript 编写,但出现此错误且无法解决!

代码片段:

module.exports = class CoreModel extends Backbone.Model

   destroyed: false

   # Helper to toggle the state of boolean value (using not)
   toggle: (key) -> @swap key, invert

   # Helper to change the value of an entry using a function.
   swap: (key, f) -> @set key, f @get key

   toJSON: -> if @destroyed then 'DESTROYED' else super

错误:

[stdin]:11:45: error: unexpected else
toJSON: -> if @destroyed then 'DESTROYED' else super
                                          ^^^^

不知道为什么这是一个意想不到的 else!

如果您使用的是 coffeescript 2,则需要在 super() 中使用括号。这里的错误信息应该真的更有帮助。

您可以在 the docs 中阅读它。

module.exports = class CoreModel extends Backbone.Model

  destroyed: false

  # Helper to toggle the state of boolean value (using not)
  toggle: (key) -> @swap key, invert

  # Helper to change the value of an entry using a function.
  swap: (key, f) -> @set key, f @get key

  toJSON: -> if @destroyed then 'DESTROYED' else super()

如果您发现需要旧行为的情况(所有参数都转发到 super 调用,那么您可以使用此方法:

foo: -> super arguments...