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