我正在玩 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/