typescript - 使用 Typescript 和 Electron 还需要 Babel 吗?

标签 typescript webpack ecmascript-6 babeljs electron

我正在开发一个使用 Typescript 和 React 编写的 Electron 应用程序。我目前在构建过程中使用 webpack 和 babel 将 Typescript 代码打包并转换为 es6(tsc 加载器),然后转换为 es5(babel)。

既然 V8 已经支持了 ES6 的几乎所有特性[1],那么还需要使用 babel 转译器来构建 ES5 吗?

快速测试表明,当从 webpack 加载程序中删除 babel 时,我的代码可以完美运行(同时针对 commonjs 模块而不是 ES6 模块)。 我想使用的一些 ES6 特性是:

  • promise
  • async/await(ES7 但在转译为 ES6 [2] 时在 TypeScript 中可用 >= 1.7)
  • 解构/扩散运算符

[1]: ES6 Compatibility Table [2]: TypeScript 1.7 Release Notes

最佳答案

如果你测试它并且它有效,那就太好了!

需要记住的是,有时(这里主要是非 V8)功能可能有错误,因此需要注意版本历史记录。

我认为这里隐藏的 Blade 是迁移代码的潜力,因为它可能必须在某个时候在 ES5 环境中工作,当你可能发现(无论出于什么该死的原因,毕竟这是 JS/TS)重新启用转桩会阻止您的代码/测试/工作流程。

从服务器端 typescript 的角度来看,我将 ES6 用于 Node v6.6,因为如果我必须将旧节点的平台作为目标,我相当愿意冒险处理问题。

最后要注意的是,尽管 TC39 的 ECMAScript2015/ES6,Firefox 和 Chrome 反对隐式尾调用,所以这有点雷区。

关于typescript - 使用 Typescript 和 Electron 还需要 Babel 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39976958/

相关文章:

javascript - 导出函数和 module.exports 有什么区别?

javascript - 将 promise 返回的值推送到数组中

javascript - Angular 2. 错误 : Loading chunk failed

angular - 如何加载 config.json 并在另一个模块中使用配置值?

javascript - 聚合多个调用,然后使用 Promise 分离结果

javascript - webpack.js 中的 yargs.parse 错误

javascript - webpack 找不到模块 "fs"

javascript - Draftjs: TypeError: TypeError: this.getImmutable(...) 未定义

javascript - Object.assign——覆盖嵌套属性

node.js - TypeScript 编译器 (tsc) 在 Raspberry PI 上没有响应