📜  TypeScript和Babel之间的区别

📅  最后修改于: 2021-01-11 13:01:34             🧑  作者: Mango

TypeScript和Babel之间的区别

巴别塔

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

从下表中我们可以了解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.