在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版本中计划加入的特性包括:
开发者们可以在最新发布的Visual Studio 2015中直接使用TypeScript 1.5,也可以下载对应Visual Studio 2013与npm的版本。
专栏:动态语言、JavaScript、TypeScript、Web开发、.NET、.NET语言、ECMA、微软、ECMAScript 6