javascript - 为什么我要同时使用 TypeScript 和 Babel?

我们在 NPM 和 NodeJS 上运行内部编写的构建自动化。我对自动化一些转换步骤以使 TypeScript 和 Babel 一起工作感到非常满意。我只是想知道会有什么好处。谁能告诉我?似乎由于 TS 增加了对 ES6 的支持,所以你并不真的需要 Babel。一件事似乎很可能是 Babel 更早地支持新功能,但目前 TS 似乎并不太落后。

我错过了什么吗?

最佳答案

在我看来,您使用 typescript 将 TypeScript 代码转换为 ES6,然后使用 babel 将其重新转换为 es5/es3 以使用在大多数 javascript 运行时。现在因为 typescript 编译器给你 es6 javascript 你可以做 tree-shaking仅 es6 模块支持。在对你的 es6 javascript 进行 tree-shaking 之后,你现在可以将它编译成 es5 以供大多数 javascript 运行时使用。

基本上

  1. 编译ts到js-es6

tsconfig

{
  "compilerOptions": {
    "target": "es6"
  }
}
  1. es6 javascript 中的树抖动或死代码消除

摇树 使用汇总等

  1. 转译为 es5 javascript 以便能够在大多数 javascript 运行时中运行

.babelrc

{
  "presets": [
    "es-2015",
    "stage-2"
  ]
}

https://stackoverflow.com/questions/44020689/

相关文章:

unit-testing - 在 Visual Studio 中进行单元测试时会重建不必要的项目

android - 使用 gradle 为不同的应用程序风格使用不同的资源

ios - 如何让 xcode 在依赖项之前运行脚本?

java - 目前是否可以通过 Maven 构建 Eclipse 插件并具有良好的 IDE 集成?

android - 错误 "cannot find -lrt"为 Android 构建 Boost

.net - NuGet Enterprise - 不同成熟度级别包的最佳实践

c++ - 如何让项目将其构建输出与 Scons 放在同一目录中?

c++ - 构建 Boost 动态可链接会导致链接错误?

xcode - 使用运行脚本时更新 Xcode 构建进度条

visual-studio - 在构建期间无法自动将 NuGet 包更新到最新版本