[AST Babel] Babel Template

For example we want to just conver a VariableDeclaration to

Foo.bar.otherBaz("one", 2);

 

We can use Babel template to do that:

复制代码
export default function(babel) {
  const { types: t, template } = babel;

  return {
    name: "ast-transform", // not required
    visitor: {
      VariableDeclaration(path) {
          const templateString = `Foo.bar.BAZ(ONE, TWO)`
        const callExpressionBuilder = template(templateString)
        const callExpression = callExpressionBuilder({
            FOO: t.identifier('someFoo'),            
            BAZ: t.identifier('otherBaz'),
            ONE: t.stringLiteral('one'),
              TWO: t.numericLiteral(2)
        })
        path.replaceWith(callExpression)
      }  
    }
  };
}
复制代码

 

posted @   Zhentiw  阅读(357)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2019-03-04 [Transducer] Make Transducer works for Iteratable collection and Object
2019-03-04 [Algorithm -- Dynamic programming] 91. Decode Ways <How Many Ways to Decode This Message?>
2016-03-04 [CSS] CSS Transitions: Delays and Multiple Properties
2016-03-04 [ReactJS] DOM Event Listeners in a React Component
2015-03-04 [Javascript + lodash] sortBy and sortedIndex
2015-03-04 [Javascript] Webpack Loaders, Source Maps, and ES6
点击右上角即可分享
微信分享提示