前言
在介紹Typescript 之前,我需要隆重介紹一個人:

安德斯·海爾斯伯格(Anders Hejlsberg,1960.12~),丹麥人,Turbo Pascal編譯器的主要作者,Delphi和C#之父,同時也是·NET創立者。當然現在也是Typescript的創始者。目前是就職微軟,是微軟技術領域的智囊團之一。
1.簡單介紹Typescript
http://www.typescriptlang.org/ 這是Typescript的官方網站,在這里,可以找到英文的關於Typescript的語法介紹,(我會在后面幾節也介紹相關知識),TypeScript 是微軟開發的 JavaScript 的超集,TypeScript編譯后會生成JavaScript,項目可以載入生成后的JavaScript代碼然后運行。如果有JavaScript的知識,學起來如魚得水,學習的時候,推薦使用Visual Studio,做一個項目,有個強大的IDE支持,再好不過了。另外,Visual Studio對Typescript有着完美的支持,類似智能提示,錯誤提示,編譯運行,工程文件管理等等。誰讓Typescript是微軟的又一個新生兒呢,當然,也有別的Typescript的編譯器,這里就不在詳述了。
2.書寫JavaScript時候,你有什么煩惱?
- JavaScript是個神一樣的語言,靈活性之高,沒有哪種語言可以匹敵,如此高的靈活性,大蝦和菜鳥,同樣的功能,寫出來的風格肯定是截然不同,如何去管理我們的code?
- JavaScript在任何IDE下,編譯時候不會報錯,但是在運行時,沒有規律的JavaScript的錯誤是漫天飛。
- 在書寫JavaScript時候,如果沒有modules的概念的話,沒有遵循CommonJs的規范的話,那么自己寫的JavaScript的變量必然會和別人寫的重名變量沖突,或許甚至可能影響 第三方JS類庫的正常使用。
- 有沒有更改變量名字的時候,是不是想死的心都有?
- 你是不是有狠下心refactor的時候,但是,最終受不了JavaScript的折磨,放棄了?
- 如此靈活但瘋狂的JavaScript,你是不是對它愛恨交加呢?
3.找個老婆來管理桀驁不馴的JavaScript
JavaScript 只是一個腳本語言,並非設計用於開發大型 Web 應用,但是最近Html5的流行,手機網頁應用的不斷發展,越來越多的項目使用純JavaScript來開發,那么在編寫JavaScript的是,如何提高代碼質量,如果依靠JavaScript的本身的語言特性,太難了,我相信即使是大牛的Team,也不會輕易說我能解決這個問題。TypeScript由此而生,它幫助並實現了JavaScript以下這些特性。TypeScript 主要特點包括:
- TypeScript 是微軟推出的開源語言,使用 Apache 授權協議
- TypeScript 是 JavaScript 的超集.
- TypeScript 增加了可選類型、類和模塊
- TypeScript 可編譯成可讀的、標准的 JavaScript
- TypeScript 支持開發大規模 JavaScript 應用
- TypeScript 設計用於開發大型應用,並保證編譯后的 JavaScript 代碼兼容性
- TypeScript 文件擴展名是 ts,而 TypeScript 編譯器會編譯成 js 文件
- TypeScript 語法與 JScript .NET 相同,如果你有C#的編寫竟然,那基本熟悉了Typescript的語法。
- Typescript 可以更加方便的Debug項目。
- Typescript 可以幫助實現類似程序集 assembly的管理。
- Typescript 可以方便的實現Unit Test的管理
4.語法特性
- 類 Classes
- 接口 Interfaces
- 模塊 Modules
- 類型注解 Type annotations
- 編譯時類型檢查 Compile time type checking(這個太重要了,可以在程序運行之前的編譯階段,就可以發現錯誤。試想單純的JavaScript怎么可能做到呢?)
- Arrow 函數 (類似 C# 的 Lambda 表達式)
今天就先寫到這,后面我還會抽空更新相關的資料,項目中,我們Team已經用Typescript在今年開發了3個大型JavaScript項目,而且用Typescript開發,書寫UnitTest的時候,非常簡單,這樣,我們的Project的代碼容錯率為 8/1000. 所以,我非常想推薦大家嘗試下Typescript,用Typescript開發的時候,可能你會覺得別扭,沒有JavaScript書寫那么的自由,如果沒有質量保證的話,開發時間+查找問題時間+更改Bug時間 》遠大於》 開發時間+Unit Test Time。本人在Typescript 0.8.1的時候開始使用,現在Typescript已經更新到0.9.5,感覺非常不錯,Typescript語法糖不斷的創新,感謝微軟所做的一切。
