📅  最后修改于: 2021-01-11 13:01:34             🧑  作者: Mango
Babel是一个免费的开源JavaScript编译器。甲transpiler(源极到源编译器)是一种工具,其读取被写入一个编程语言源代码,并且产生的等效代码中另一种编程语言。 Babel主要用于将ES6 (ECMAScript 2015)或更高版本的代码转换为JavaScript的向后兼容版本(ES5) ,可以在任何浏览器中与旧版本一起运行。它是使用JavaScript编程语言的最新功能的流行工具。
Babel使用polyfills为JavaScript环境中缺少的功能提供支持。例如,诸如Array.from之类的静态方法和诸如Promise之类的内置方法仅在ES6或更高版本中可用,但是如果使用Babel polyfill,我们可以在较旧的环境中使用它。
TypeScript是一种开源的纯面向对象编程语言。它是JavaScript的强类型超集,可编译为纯JavaScript。我们无法直接在浏览器上运行TypeScript程序。它需要一个编译器来编译并生成JavaScript文件,该文件可直接在浏览器上运行。我们可以使用“ .ts ”扩展名保存TypeScript源文件。 TypeScript由Microsoft根据Apache 2许可开发和维护。
我们可以将Typescript用于服务器端和客户端Web应用程序。它也用于开发大型Web应用程序。它增加了对ECMAScript中存在的各种功能的支持,该功能由ECMA组的TC39委员会维护。
Anders Hejlsberg开发了TypeScript。 Typescript的第一版将于2012年10月1日面向公众发布。经过Microsoft两年的内部开发,TypeScript 0.9的新版本于2013年发布。 TypeScript的当前版本是TypeScript 3.4.5 ,该版本于2019年4月24日发布。
从下表中我们可以了解TypeScript和Babel之间的主要区别。
SN | TypeScript | Babel |
---|---|---|
1. | TypeScript is an open-source pure object-oriented programing language. It is a strongly typed superset of JavaScript which compiles to plain JavaScript. | Babel is a free and open-source JavaScript transpiler. It is mainly used to convert ES6 (ECMAScript 2015) or above version code into a backward compatible version (ES5) of JavaScript that can run on any browser. |
2. | It is a programming language. | It is a tool (transpiler). |
3. | TypeScript provides type checking of data types. | Babel does not care about types. |
4. | TypeScript compiles an entire project at once. | Babel compiles only one file at a time. |
5. | Typescript enables developers to use excellent typing capabilities. It is suitable for a large application. | Babel is suitable for developers who want to write plain JavaScript code using the latest language features. |
6. | TypeScript is additional add-ons to JS, which allow for strong typing. | Babel is a transpiler (tool) that takes newer JS syntax features as input and returns older/more reliable syntax as output. |
7. | It is developed and maintained by Microsoft. | It is closely linked to ECMA Technical Committee 39 (TC39). |
8. | TypeScript compiles decorators directly. | Babel does not compile decorators directly. It has a legacy mode to compile the decorators with the old version. |