我知道TypeScript是用来编写Angular2的,这可能使它成为想要涉足Angular2的人更好的选择,但当我看到Babel时,它看起来非常像TypeScript。
我注意到许多知名公司都坚持使用Babel。
以下是一些问题:
- 它们各自有哪些优劣势?
- 它们对于项目/开发人员来说是更好还是更差的选择?
- 它们之间的主要区别是什么,而这些区别又使它们独特呢?
我知道TypeScript是用来编写Angular2的,这可能使它成为想要涉足Angular2的人更好的选择,但当我看到Babel时,它看起来非常像TypeScript。
我注意到许多知名公司都坚持使用Babel。
以下是一些问题:
TypeScript是JavaScript的超集,可以编译成普通的JavaScript(ES3+)。TypeScript的主要目标是使开发人员能够充分利用出色的静态类型功能。它适用于需要以下特性的大型应用程序:
据我所知,Babel只是将较新的ECMAScript功能转换为旧的ECMAScript环境支持的格式。它适合希望使用较新语言功能编写纯JavaScript的开发人员。
Angular 2开发人员之一 Victor Savkin 解释了为什么他们选择 TypeScript 而不是其他技术。
http://victorsavkin.com/post/123555572351/writing-angular-2-in-typescript
最后一个章节为什么选择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 生态系统."
如果您需要具有多个潜在输出的构建流程,请使用Babel进行转译并使用TSC进行类型检查
。 - Klesun