JavaScript曾是做为客户端语言引入的。Nodejs的到来让JavaScript成为服务器端语言的新星。然而,随着JS代码的增加,它变得更加混乱,较难去维护和重用代码。除此以外,它没有采用面向对象,强类型检测以及编译时错误检查等特性,这些形成了js很难在企业级应用有所发展。TypeScript 就是用来弥补这些短板。javascript
根据定义,“TypeScript是用于应用程序规模级开发的JavaScript”。java
TS是强类型,面向对象,编译型的语言。他是微软的Anders Hejlsberg(C#的设计者)设计的。TS是一门语言,也是一个工具集。TS是JS的超集,TS能编译成普通的JS。换句话说,TS等于JS加上一些额外的特性。typescript
TS也仍是JS 。TS从JS开始,从JS结束。TS采用JS的基础结构,所以你只须要知道JS就能去用TS了。全部TS代码为了可以跑起来都会转成JS等效代码。编程
TS支持其它JS库 。 能够从任何JS代码里运行编译后的TS。由TS生成的JS代码可以重用全部已有的JS类库,工具和库。浏览器
JS是TS 。 这个意思是任何有效的.js文件都可以重命名成.ts文件,而且和其余TS文件一块儿编译。服务器
TS是可移植的 。TS可以运行在任何JS能够运行的地方(跨浏览器,设备,操做系统)。和别的同类型语言不一样,TS不须要专用虚拟机或者指定的运行环境。(有点争议,对比场景不太同样,并且浏览器其实也就是运行环境吧。。。)编辑器
ECMAScript规范是脚本语言的一种标准。ECMA-262已经有6个版本发布了。V6代号为“Harmony”。TypeScript与ECMAScript 6规范一致。模块化
TS采用ECMAScript5规范做为其基本语言特征,也就是javascript的官方标准。TS的那些模块化以及面向对象的特性符合EcmaScript 6的标准。另外,TS还包含泛型和类型注释等功能,这些功能不属于EcmaScript规范。函数
从 TS是JS的扩展 这一点来讲,TS比其它同类型语言像CoffeeScript和Dart语言更好。相比之下,像Dart这样的语言自己就是新语言,须要特定的执行环境。工具
TS的好处包括:
TS的核心有如下3个:
描述文件(.d.ts文件),做用是从js中抽象出组件描述。这个概念相似于C/C++的头文件。声明文件能够为jQuery,MooTools等JS库提供类型,函数调用的智能感知(好比代码补全等)。