【问题标题】:Why do I get syntax error trying to call super?为什么我在尝试调用 super 时会出现语法错误?
【发布时间】:2013-09-20 20:50:48
【问题描述】:

我有一个 Coffeescript 类和一个子类。从子类构造函数我想调用超级实现。我喜欢这样:

class MyTestAbstract
  constructor: ->
    @created_at = new Date()

class MyTestConcrete extends MyTestAbstract
  constructor: ->
    super

但我收到以下语法错误:

/usr/local/lib/node_modules/coffee-script-redux/bin/coffee --source-map -i test_class.coffee
Syntax error on line 7, column 10: unexpected '\n' (\u000A)
4 : 
5 : class MyTestConcrete extends MyTestAbstract
6 :   constructor: ->
7 :     super
^ :~~~~~~~~~^
8 : 

这里有什么问题?

更新:似乎是 CoffeeScriptRedux 问题。我在github上创建了一个问题:https://github.com/michaelficarra/CoffeeScriptRedux/issues/244

【问题讨论】:

    标签: coffeescript


    【解决方案1】:

    super 还没有在 redux 中实现。

    请参阅Progress Wiki Page

    【讨论】:

      【解决方案2】:

      您的代码可以在 newest coffeescript 编译器上正常工作。

      您是否尝试过使其成为显式调用?

      class MyTestConcrete extends MyTestAbstract
        constructor: ->
          super()
      

      super 调用后的行是否可能包含空格?

      【讨论】:

      • 我尝试使用 () 没有运气,还检查了额外的空格。也许它与 CoffeeScriptRedux 有关。我用它来与 WebStorm 集成。
      • @olegam 我想你找到了问题的原因。
      • 尝试在文件底部添加评论。这有时对旧的咖啡脚本版本有所帮助。
      • super()super 做不同的事情。它们不是彼此的直接替代品。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      相关资源
      最近更新 更多