Babel和TypeScript之间的主要区别是什么

时间:2016-05-25 07:34:46

标签: javascript typescript babeljs

我知道TypeScript用于编写Angular2,这可能使其成为想要进入Angular2的人的更好选择,但是当我看到Babel时,它看起来非常像TypeScript。

我注意到很多知名公司都坚持巴贝尔。

有些问题:

  1. 他们相互之间有什么优势?
  2. 这对项目/开发人员来说是更好还是更差的选择?
  3. 它们之间的主要区别是什么?它们的独特性是什么?

2 个答案:

答案 0 :(得分:54)

TypeScript是JavaScript的超集,可编译成纯JavaScript(ES3 +)。 TypeScript的主要目标是使开发人员能够利用出色的静态类型功能。它适用于受益于以下功能的大型应用程序:

  • 输入注释&类型推断。
  • 泛型。
  • 接口,枚举,命名空间,模块和类(后两者在ES6中可用)。
  • 安全重构。

据我所知,Babel只是"翻译"较新的ECMAScript功能可转换为旧ECMAScript环境支持的格式。它适用于想要使用较新语言功能编写纯JavaScript的开发人员。

答案 1 :(得分:27)

维克多·萨维金(Victor Savkin)是一位有角度的2位开发人员,他们之所以谈到为什

http://victorsavkin.com/post/123555572351/writing-angular-2-in-typescript

最后一节 为什么打字稿?

"今天前端开发人员有很多选择:ES5,ES6(Babel),TypeScript,Dart,PureScript,Elm等。那么为什么选择TypeScript?

让我们从ES5开始吧。 ES5比TypeScript有一个显着的优势:它不需要转换器。这使您可以简化构建设置。您无需设置文件监视器,转换代码,生成源映射。它只是有效。对于许多小项目而言,这种简单性超过了TypeScript提供的高级重构和导航功能。你只知道所有代码的位置,以及它的作用。

ES6需要一个转换器,因此构建设置与TypeScript没有太大区别。但它是一个标准,这意味着每个编辑器和构建工具都支持ES6或支持它。

Elm和PureScript是优雅的语言,具有强大的类型系统,可以比TypeScript更能证明您的程序。用Elm和PureScript编写的代码比用ES5编写的类似代码要简单得多。

这些选项中的每一个都有利有弊,但我认为TypeScript处于最佳位置,使其成为大多数项目的绝佳选择。 TypeScript占用了一种优秀的静态类型语言的95%的有用性,并将其带入JavaScript生态系统。你仍然觉得你在编写ES6:你继续使用相同的标准库,相同的第三方库,相同的习惯用语和许多相同的工具(例如,Chrome开发工具)。它为您提供了很多帮助,而不会让您退出JavaScript生态系统。"