日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

babel 转换箭头函数

發(fā)布時(shí)間:2025/4/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 babel 转换箭头函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)換前:

const sum = (a,b)=>a+b

?

?

轉(zhuǎn)化后:

// "use strict";
// var fn = function fn(a, b) { // return a + b; // };

?

?

?

?

實(shí)現(xiàn):

從圖片的對(duì)比我們可以看出最大的不同是在 init 時(shí),函數(shù)的不同

init Es6 : ArrowFunctionExpression Es5: FunctionExpression 所以我們可以利用一個(gè)插件轉(zhuǎn)化 let t = require('@babel/types'); 具體: const babel = require('@babel/core'); let code = `let fn = (a,b) => a + b`; let t = require('@babel/types'); //1.init // Es6 : ArrowFunctionExpression // Es5: FunctionExpression /// t.functionExpression(id, params, body, generator, async) // id: Identifier (default: null) // params: Array<LVal> (required) // body: BlockStatement (required) // generator: boolean (default: false) // async: boolean (default: false) // returnType: TypeAnnotation | TSTypeAnnotation | Noop (default: null) // typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop (default: null)//2. body // // ES5 BlockStatement // Es6 ExpressionStatement let transformArrowFunctions = {visitor: {ArrowFunctionExpression: (path, state) => {// console.log(path.node)// console.log(path.parent.id)let node = path.node;let id = path.parent.id;let params = node.params;let body=t.blockStatement([t.returnStatement(node.body)]);//將ArrowFunctionExpression 轉(zhuǎn)化為 FunctionExpression ,傳入不要的參數(shù)let functionExpression = t.functionExpression(id,params,body,false,false);path.replaceWith(functionExpression);}} } const result = babel.transform(code, {plugins: [transformArrowFunctions] }); console.log(result.code);// let fn = function fn(a, b) { // return a + b; // };

輸出:

let fn = function fn(a, b) {return a + b; };

AST樹可視化工具的網(wǎng)站:? https://astexplorer.net/??

轉(zhuǎn)載于:https://www.cnblogs.com/guangzhou11/p/11441146.html

總結(jié)

以上是生活随笔為你收集整理的babel 转换箭头函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。