JavaScript的新Babel版本借鉴了在Web浏览器上运行的F#和Julia编程语言代码的简洁代码功能。这就是像Babel这样的转译器派上用场的地方。Babel可以将用最新版本的JavaScript编写的代码转换为可在现有浏览器和旧浏览器中运行的遗留JavaScript代码。使用转换器允许开发人员充分利用更新的JavaScript功能,例如允许开发人员编写更具可读性的代码并使异步编程更容易。本周发布的Babel7.5朝着这个方向又迈进了一步:添加对F#和Julia编程语言的支持,作为JavaScript的一项便利功能。此版本可以配置为识别F#管道运算符,由符号|>表示。该运算符提供了一种仅使用一个参数调用函数的替代方法,例如,允许将第2行的代码编写为第3行的代码。functionrepeat(str){returnstr+","+str;}repeat("hello")"hello"|>repeat这个流水线操作符允许开发者连接多个函数(一个函数的结果传递给下一个函数,依次类推),可以写出更具可读性的代码。假设您定义了以下函数,分别是重复单词、大写单词和添加感叹号。functionrepeat(str){returnstr+","+str;}functioncapitalize(str){returnstr[0].toUpperCase()+str.substring(1);}functionexclaim(str){returnstr+'!';}你可以使用JavaScript不使用流水线运算符的函数拼接,方法如下:letresult=exclaim(capitalize(repeat("hello")));result//=>"Hello,hello!"这些函数使用管道操作符连接起来,方法如下:letresult="hello"|>repeat|>capitalize|>exclaim;result//=>"Hello,hello!"pipelineoperator还处于proposal阶段,也就是说@babel/plugin-proposal-pipeline-operator添加到Babel配置文件中以在Babel中启用它。在将运算符添加到Babel之前,目前正在评估管道运算符的五个变体;除了现有的minimal和smart变体之外,Babel7.5添加了对运算符F#变体的支持。F#管道运算符可以与带有多个参数的函数一起使用,只需将它与JavaScript的箭头函数结合使用即可。在异步编程中使用await关键字时,箭头函数也与F#管道运算符一起使用。您可以在此处(https://github.com/tc39/proposal-pipeline-operator)阅读有关管道运算符及其如何与Babel一起工作的更多详细信息。Babel7.5也不再需要依赖多个babel插件来解析不同JavaScript模块打包器的动态导入,例如webpack和rollup。相反,开发人员现在可以简单地将@babel/plugin-syntax-dynamic-import插件添加到他们的Babel配置文件中。Babel不仅可以从较新的JavaScript代码进行转译,还可以从JavaScript派生语言TypeScript进行转译。这个最新的Babel版本还允许开发人员在他们的代码中使用TypeScript命名空间。命名空间允许开发人员告诉计算机将代码分解成更小、不同的块,这样他们就可以更有信心变量、函数和对象的名称不会发生冲突。通过将以下内容添加到Babel的配置文件中,可以将对命名空间的实验性支持添加到Babel的TypeScript插件中。module.exports={plugins:[["@babel/plugin-transform-typescript",{allowNamespaces:true}]]}这里(https://github.com/babel/babel/releases/tag/v7.5.0)为Babel7.5版本提供了一整套附加功能和修复。许多大公司都在使用Babel,包括Facebook、Netflix、Cloudflare、PayPal和Airbnb等。原标题:JavaScript在新的Babel版本中借鉴了F#和Julia编程语言的简洁代码特性,作者:NickHeath
