【譯】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庫提供類型,函數調用的智能感知(好比代碼補全等)。

原文

相關文章
相關標籤/搜索