0

我想编写一个 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'

任何想法将不胜感激。

4

0 回答 0