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

Dev*_*vWL 44 javascript typescript babeljs

我知道TypeScript用于编写Angular2,这对于想要进入Angular2的人来说可能是一个更好的选择,但是当我看到Babel时,它看起来非常像TypeScript.

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

一些问题:

  1. 它们相互之间有什么优势?
  2. 这使他们成为项目/开发人员的更好或更差的选择?
  3. 它们之间的主要区别是什么?它们的独特之处是什么?

Mar*_*rty 61

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

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

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

  • 现在,Typescript支持普通的旧Javascript,所以真的没有理由再使用babel了. (5认同)
  • 这是否意味着TypeScript既是ES6到ES3 +的转译器,又是javascript的超集,它为javascript增加了一些功能,而Bable只能将ES6移植到ES5? (2认同)

Taw*_*wah 29

维克多·萨维金(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生态系统."

  • 2019 年底到来。如今,如果您对用户群的浏览器选择有一定的发言权(最值得注意的是,如果您不关心 IE 支持),那么 ES6 基本上不再需要编译器。 (2认同)