一、什么是Typescript?
定义:强类型的JavaScript超集,可编译为纯JavaScript。
二、Typescript与JavaScript的区别
1、JavaScript
(1)不支持ES6。
(2)不支持强类型或静态类型。
(3)只是一种脚本语言。
(4)没有可选的参数特性。
(5)解释语言,在运行时突出显示错误。
(6)不支持模块。
(7)number和string是对象。
(8)不支持泛型。
2、Typescript
(1)支持ES6。
(2)支持强类型或静态类型。
(3)支持面向对象的编程概念,如类、接口、继承、泛型等。
(4)有可选的参数特性
(5)编译代码并在开发期间突出显示错误。
(6)支持模块
(7)number和string是接口。
(8)支持泛型。
三、我们为什么需要TypeScript?
(1)快速、简单,容易学习。
(2)支持面向对象的编程特性,比如类、接口、继承、泛型等等。
(3)在编译时提供了错误检查功能。它将编译代码,如果发现任何错误,它将在运行脚本之前突出显示这些错误。
(4)支持所有JavaScript库,因为它是JavaScript的超集。
(5)通过使用继承来支持可重用性。
(6)使应用程序开发尽可能的快速和简单,并且TypeScript的工具支持为我们提供了自动完成、类型检查和源文档。
(7)支持最新的JavaScript特性,包括ECMAScript 2015。
(8)提供了ES6的所有优点和更高的生产力。
(9)支持静态类型、强类型、模块、可选参数等。
四、优点
(1)提供了可以添加到变量、函数、属性等的类型
(2)能够编译出一个能在所有浏览器上运行的JavaScript版本
(3)TypeScript总是在编译时强调错误,而JavaScript在运行时指出错误。
(4)TypeScript支持强类型或静态类型,而这不是在JavaScript中。
(5)有助于代码结构。
(6)使用基于类的面向对象编程。
(7)提供了优秀的工具支持和智能感知,后者在添加代码时提供活动提示。
(8)通过定义模块来定义名称空间概念。
五、缺点
(1) 需要很长时间来编译代码。
(2)不支持抽象类。
(3)如果我们在浏览器中运行TypeScript应用程序,需要一个编译步骤将TypeScript转换成JavaScript。
(4)Web开发人员使用了几十年的JavaScript,而TypeScript不是都是新东西。
(5)要使用任何第三方库,必须使用定义文件。并不是所有第三方库都有可用的定义文件。
(6)类型定义文件的质量是一个问题,即如何确保定义是正确的?
六、 TypeScript的不同组件是什么?
(1)语言language
定义:该语言由新语法、关键字、类型注释等元素组成,允许我们编写TypeScript。
(2)编译器compiler
TypeScript编译器是开源的、跨平台的,是用TypeScript编写的。它将用TypeScript编写的代码转换为JavaScript代码。它执行从TypeScript代码到JavaScript代码的解析和类型检查。它还可以帮助将不同的文件连接到单个输出文件,并生成源映射。