Babel插件里怎么判断一个节点是不是箭头函数?

慕容爱军 阅读 14

我在写一个Babel插件,想在遍历AST的时候识别出箭头函数,但不确定该用什么条件判断。试过 node.type === 'ArrowFunctionExpression',但有时候好像不生效?

比如下面这段代码,我期望能准确捕获到箭头函数节点:

const fn = (a, b) => {
  return a + b;
};
我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
Designer°玉飞
在Babel插件里判断一个节点是不是箭头函数,确实应该用 node.type === 'ArrowFunctionExpression',这个条件是正确的。如果你发现有时候不生效,可能是其他地方出了问题。确保你在正确的遍历阶段检查了这个条件,并且没有被其他逻辑干扰。

你可以试试下面这个简单的示例,看看能不能帮你解决问题:

module.exports = function ({ types: t }) {
return {
visitor: {
ArrowFunctionExpression(path) {
console.log('Found an arrow function!');
// 你的处理逻辑放在这里
}
}
};
};


这个例子直接在 ArrowFunctionExpression 这个节点类型上挂载了一个访问器,这样每次遇到箭头函数时都会触发这个回调,你可以在里面写你的处理逻辑。

如果还是有问题,检查一下你的插件配置和Babel版本,有时候这些也会导致一些奇怪的行为。优化一下排查思路,希望能帮到你。
点赞
2026-03-21 20:18