TypeScript是个什么鬼?和JavaScript有什么关系?前端
TypeScript是由微软开发的一种可快速入门的开源的编程语言,是JavaScript的一个超集,且向这个语言添加了可选的静态类型和基于类的面向对象编程。可以帮助web前端开发人员编出更出色的JavaScript代码、搞定规模可观的JavaScript项目并为ECMAScript 6的来临作好准备。java
JavaScript是一款通用脚本语言,植根于开发工具的核心深处,同时在Node.js等服务器端实现方案中也有所体现。除此以外,JavaScript仍是微软开发技术方案的关键组成部分,若想对office进行扩展,不使用JavaScript是不行的。web
虽然JavaScript已发展得很是强悍了,但其离完美还有一大段距离,特别是在构建包含大量客户端代码的web应用时,JavaScript的不足之处就很是明显。这个时候,配合TypeScript使用,JavaScript的缺陷就可完美解决。只需在TypeScript当中编写代码,然后将其交付至编译器,便可将所开发代码转换为可以运行在服务器端,又能够由客户端中的HTML进行调用的JavaScript形式方案。编程
TypeScript还将大量ECMAScript 6功能加入到了JavaScript当中,具体包括类与模块,并尝试将这两种本是同根生的语言加以进一步融合,从而知足ECMAScript 6的标准化方法要求。经过这种方式,你们能够利用TypeScript开发出可以为ECMAScript 6所接纳的代码,同时充分发挥TypeScript的静态类型优点以提高代码安全性水平。数组
TypeScript容许咱们面向变量进行类型声明,从而确保A始终属于整数而C始终属于字符串。虽然TyperScript的类型安全性并不像Fortran那么全面,但其仍然可以定义数字与字符串,并利用Boolean类型显著改善代码调试机制。除此以外,TyperScript还提供选项以实现类型推断,从而下降发生错误的可能性若是你们的代码为两个数字相加,那么TyperScript会认定其结果始终为数字。安全
经过使用TypeScript,开发者也能够将类型应用至数组中,或利用enums为特定变量名称设置值。若是不肯定本身可能使用哪一种类型,则能够将变量设定为any,在这种状况下TypeScript不会推断其具体类型、你们也不会所以遇到错误或者警告。TypeScript类型能够自行选择,所以也无需在编译或者运行以前,首先向现有代码添加各类类型,这将有效简化现有代码的相关迁移工做。服务器
须要注意的是,现有JavaScript代码将成为TypeScript应用程序的一部分加以运行。而若是将代码迁移到ECMAScript 6或者TypeScript语法形式下,你们便可享受到TypeScript的各类功能优点。而若是咱们使用具有TypeScript识别能力的工具,则能够拥有面向Visual Studio IntelliSense的支持能力——其可以帮助咱们对函数调用中的类型进行管理。除此以外,也可利用TypeScript声明文件向各种经常使用库及服务中快速添加类型支持,例如jQuery库。编程语言
拥有这样一款类型化且近似于JavaScript的语言可以给类使用与模块构建带来显著简化(与AngularJS当中的处理方式很是相近)。类型的存在可以确保某个警告类中的全部实例都经过字符串进行调用,这将帮助咱们轻松构建起更理想的构造函数。你们能够将这种类型化构造函数调用视为一种契约,负责定义两段代码之间的相互做用——并帮助咱们更轻松地在不一样应用程序之间重复使用同一函数。函数
在函数调用当中定义类型正是建立接口结构的关键所在,可以使咱们的代码更具面向对象特性。你们能够将函数元素明肯定义为接口,并选择在函数当中使用更具描述性的名称,同时又不会影响到进行调用检查时向IntelliSense等函数所必需的工具发出通知。工具
以这种方式定义类型与接口,可以让多位开发人员轻松对大型JavaScript项目加以管理。而在函数与类设计中秉持“接口至上”的契约化方法,则可以帮助你们在对应用程序中特定部分进行优化时不至于影响到其他部分,或者从其余开发者手中借用某种接口定义并直接运用到其它实现方案当中。这种方式容许咱们以更为高效的方式使用诸如Git以及GitHub等工具,从而在一套持续开发模型当中轻松管理多个代码分支。
若是使用的是Java语言或者C#语言,那么对TypeScript(以及ECMAScript 6)的类实现机制必定不会感到陌生。你们能够在构造函数以内建立类,从而对方法中所使用的类型进行定义,最终利用相似的来处理各类内部对象。你们也能够利用继承、添加功能与重写方法等方式对类进行扩展。而更值得注意的是,TypeScript还支持常见于函数与接口当中的泛型——其可以帮助你们交付可重复使用的函数。
一旦掌握了TypeScript处理类与函数的方式, 就能够着手将其组织在模块当中,在这里类与函数可以被拆分至多个文件当中。这显然是一种很是便捷的代码组织方案——举例来讲,咱们能够利用几个文件来处理购物车当中的不一样函数。在此以后,你们能够对各个子模块进行分别更新,从而在特定函数中利用调整归零机制改善其性能水平,同时又不至于对其它函数形成影响。具有声明文件的JavaScript库也能够做为模块使用,所以你们可以在TypeScript应用程序当中充分发挥由此带来的诸多优点。
在大型web应用程序的开发中,对JavaScript的使用,以TypeScript做为切入点,将大大提升咱们开发的效率。TypeScript不只可以帮助咱们在具有充分掌控能力且遵循可重复使用方针的前提下完成编码工做,同时也可以拥有一条通往ECMAScript 6的理想路径。相信从此web前端开发,甚至整个web端全部网站的开发,都将逐步使用到TypeScript,以提升JavaScript的编程效果。
推荐学习:jQuery实战视频教程