javascript - 在 sweetjs 中实现多行瘦箭头语法

标签 javascript preprocessor sweet.js

我正在玩 sweetjs,但我一辈子都不明白为什么 this rule for parameterless multiline skinny arrow syntax不匹配

代码:

macro -> {
  rule infix { () | { $body ... $last:expr } } => {
    function( ) { 
      $body ...;
      return $last
    }
  }
}

var fn = () -> {
  var a = 1;
  a + 2;
};
expect(fn()).to.equal(3);

结果

SyntaxError: [macro] Macro `-` could not be matched with `> {} ; expect ()...`
10: var fn = () -> {
                ^

最佳答案

尝试删除闭包最后一行的分号,由于某种原因,sweetjs 编译器在处理 $last 和分号时遇到问题。

macro -> {
 rule infix { () | { $body ... $last:expr } } => {
    function() {
      $($body) ...
      return $last
    }
  }
}

var fn = () -> {
  var a = 1
  a + 2
};

关于javascript - 在 sweetjs 中实现多行瘦箭头语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513298/

相关文章:

css - 编译非根 CSS 自定义属性

error-handling - 错误会停止制作程序吗?

webpack - babel-plugin-macros 与 Sweet.js 的用例是什么?

javascript - 在浏览器中使用 Javascript 处理大数据的有效方法

javascript - 我的 html5 Canvas 和 Kinetic.js 代码不工作

javascript - 循环遍历 2 个数组并通过扭曲查找差异

javascript - 如何使用 sweet.js 编译多个文件?

JavaScript:使第一个隐藏元素可见

excel - VBA - 检测是否安装了应用程序以使用它

javascript - Sweet.js - 可以在多个文件中使用宏吗?