我想编写一个 Babel 插件,将块语句作为函数的第一个参数foo
转换为箭头函数体。
我想
foo({var a = 1;})
变身
foo(() => {var a = 1;})
我尝试了以下方法:
visitor: {
CallExpression(path) {
if (path.node.callee.name == 'foo') {
if (path.node.hasOwnProperty('_alreadyVisited')) return;
path.replaceWith( t.callExpression( path.node.callee,
[t.arrowFunctionExpression([], path.node.arguments[0])] ) );
path.node['_alreadyVisited'] = true;
}
}
}
但似乎我的插件规则甚至没有被考虑,因为 Babel.transform 之前已经失败了:
Uncaught SyntaxError: unknown: Unexpected keyword 'var'
任何想法将不胜感激。