【译】TypeScript简介

JavaScript曾是做为客户端语言引入的。Nodejs的到来让JavaScript成为服务器端语言的新星。然而,随着JS代码的增加,它变得更加混乱,较难去维护和重用代码。除此以外,它没有采用面向对象,强类型检测以及编译时错误检查等特性,这些形成了js很难在企业级应用有所发展。TypeScript 就是用来弥补这些短板。javascript

根据定义,“TypeScript是用于应用程序规模级开发的JavaScript”。java

TS是强类型,面向对象,编译型的语言。他是微软的Anders Hejlsberg(C#的设计者)设计的。TS是一门语言,也是一个工具集。TS是JS的超集,TS能编译成普通的JS。换句话说,TS等于JS加上一些额外的特性。typescript

superset

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不须要专用虚拟机或者指定的运行环境。(有点争议,对比场景不太同样,并且浏览器其实也就是运行环境吧。。。)编辑器

TypeScript和ECMAScript

ECMAScript规范是脚本语言的一种标准。ECMA-262已经有6个版本发布了。V6代号为“Harmony”。TypeScript与ECMAScript 6规范一致。模块化

TS,ECMA

TS采用ECMAScript5规范做为其基本语言特征,也就是javascript的官方标准。TS的那些模块化以及面向对象的特性符合EcmaScript 6的标准。另外,TS还包含泛型和类型注释等功能,这些功能不属于EcmaScript规范。函数

为何用TypeScript?

从 TS是JS的扩展 这一点来讲,TS比其它同类型语言像CoffeeScript和Dart语言更好。相比之下,像Dart这样的语言自己就是新语言,须要特定的执行环境。工具

TS的好处包括:

  • 编译 —— JS是一门解释型语言。所以,须要跑起来后来测试它的正确性。这意味着你写了全部的代码后即便有错误也不会有任何输出(来告诉你)。而后,你可能要花很长时间来查问题。TS编译器提供了错误检查的特性。若是发现某种语法错误,TS将编译代码并生成编译错误。这有助于在脚本运行前就暴露错误。
  • 强静态类型 —— JS不是强类型的。TS经过TLS(TypeScript Language Service)提供可选的静态类型和类型推断系统。TLS可以推断出无类型变量的类型。
  • TS支持已有的JS库的类型定义。TS的描述文件(以.d.ts扩展名结尾)可以为现有的JS库提供描述。所以,TS可以引用这些库。
  • TS支持面向对象编程概念,好比类,接口,继承等等。。。

TypeScript的组件

TS的核心有如下3个:

  • 语言 —— 包含语法,关键词,类型注释。
  • TS编译器 —— TS编译器(tsc)把TS写的指令转成等效的JS代码。
  • 类型脚本语言服务 —— 这个“语言服务”是在核心编译器外围开设了一个新的层面的东西,差很少是给编辑器使用的。它支持常见的编辑器操做,如语句补全,签名帮助,代码格式化以及高亮等。

TS core

描述文件

描述文件(.d.ts文件),做用是从js中抽象出组件描述。这个概念相似于C/C++的头文件。声明文件能够为jQuery,MooTools等JS库提供类型,函数调用的智能感知(好比代码补全等)。

原文

相关文章
相关标签/搜索