TypeScript 1.5進一步提升了面向ES6 的轉譯特性
在TypeScript的上一個版本發布7個月之后,微軟終于 發布了TypeScript 1.5 ,新版本朝著完全支持ES6的最終目標又邁進了一大步。
當 TypeScript 1.4于2015年1月發布 時,它的 Kangax ES6兼容性 (特性實現比例)僅僅只有8%。而TypeScript 1.5中加入了眾多的新特性,使得其兼容性達到了53%(截至2015年7月26日)。
不出所料,1.5版本加入了對ES6風格的模塊語法的支持。編譯器已能夠將模塊以 SystemJS 和 UMD 的語法進行輸出。除此之外,開發團隊還借此機會將之前版本中被命名為“內部模塊”的特性更名為“命名空間”,以減少使用者的困惑。
1.5版本還加入了對修飾符的支持,這一特性之所以能夠出現在這門語言中,是開發團隊與Angular、Ember以及Aurelia團隊通力合作的成果。修飾符能夠提供運行Angular 2.0應用所 必需的特性 ,這幾個團隊都希望修飾符能夠成為ES7的一部分,但目前為止,它仍然被認為是一種實驗性質的特性。為了在Angular 2.0應用中啟用這一特性,開發者需要打開—experimentalDecorators這個編譯標志。
Steve Ognibene是 Pluralsight網站上一門有關TypeScript的課程 的作者,他對于1.5版本面向ES6的轉譯功能感到十分興奮:
TypeScript如今已成為一個完美的ES6至ES5的轉譯器,使用TypeScript 1.5的團隊不僅能夠享受到那些一貫的好處,例如開發時錯誤提示、恰當的智能提示與文檔、以及優秀的重構與代碼導航功能,還能夠編寫使用ES6的特性,而 實際上在當前的ES5環境下運行的代碼。對于ES6風格的各種語法,TypeScript 1.5都實現了良好的ES5轉譯,因此我能夠在針對生產環境的代碼中使用我最喜愛的特性,包括let、const、解構(destructuring)、 展開(spread)、剩余參數(rest)、字符串模板,以及ES6風格的模塊語法。
有些開發者可能會對async/await語法的缺失感到失望。這一特性在 TypeScript路線圖 中目前被列為“2.0”版本中的特性之一,但在之前的修訂中,它曾計劃在較早的時間發布。在某篇博客的留言中,TypeScript的程序經理Jonathan Turner特意對這一特性及其發布時間進行了回應。
我們正在對編譯器進行一些重構工作,以實現async/await對ES5的支持。我們希望讓編譯器代碼與生成的代碼盡量保持整潔,因此實現這一點需要一定時間。出于以上原因,我們估計這一特性也不會出現在1.6版本中,因為我們希望盡快發布新的版本。
這條回復同時也暗示著下一個版本的TypeScript用不著再等上7個月那么久了,1.6版本中計劃加入的特性包括:
- 對JSX的支持
- 抽象類與方法
- ES6生成器
開發者們可以在最新發布的Visual Studio 2015中直接使用TypeScript 1.5,也可以下載對應Visual Studio 2013與npm的版本。
查看英文原文: TypeScript 1.5 Boosts ES6 Transpilation Features