2012年11月9日星期五

微软发布TypeScript用以改进JavaScript开发

微软发布TypeScript用以改进JavaScript开发

作为改进JavaScript应用程序开发的举措之一,微软近日发布了TypeScript。这一新语言是JavaScript规范的超集,添加了类型检查和静态代码分析,同时生成原生JavaScript。这些特性意在使开发者能够受益于类型检查带来的便利,从而更轻松地扩展JavaScript以支持更大规模的应用程序开发。现有的JavaScript代码在TypeScript中可以直接使用,而且因为TypeScript 生成的是纯JavaScript代码,因此可以在现有支持JavaScript的平台上运行。

开发者使用声明文件来向已有的JavaScript库提供编译时检查和智能感知等优点。声明文件“是描述现有JavaScript中接口的少量类型信息”。已经有大量的项目致力于改进或替换JavaScript,其中包括CoffeeScript和Google的Dart,现在TypeScript也进入了这一领域:

CoffeeScript宣称“... 尝试以简单的方式暴露出JavaScript优秀的部分”。类似TypeScript,CoffeeScript也将代码编译为JavaScript,力求成为一种更清晰的动态类型语言。因此CoffeeScript不支持静态分析,当然它设计时也没打算支持。

Google的Dart也是动态类型的,但是提供了可选的静态类型注释。按照Google的说法,“Dart的目标是与JavaScript类似,但 更快、更规范、对大规模程序的可伸缩性更好”。Dart代码既可以编译为JavaScript,也可以直接运行在Dart虚拟机上。

TypeScript基于Apache 2.0开源许可证开放,现在可以从CodePlex下载源代码。TypeScript编译器和Visual Studio兼容插件可以从微软的网站下载。其中包含的Visual Studio插件支持Visual Studio Express 2012 for Web。微软还为 Sublime Text、Emacs和Vim等编辑器发布了示例语法文件。

Mono的Miguel de Icaza指出目前Emacs插件尚无法与Visual Studio提供的特性相比,而且智能感知特性的缺乏让人“不愿意使用”。结果是目前该语言对Windows开发环境支持的更好,尽管没什么可以阻止这种情况在未来有所改变。

关于语言本身的总体设计,de Icaza的看法整体上是积极的。他指出,TypeScript与Dart有一点区别:TypeScript只编译为JavaScript,而Dart可以生成面向其原生虚拟机的代码,这就提供了利用“类型信息来优化生成代码质量”的能力。由此可以看出两种语言设计目标上的一个区别:TypeScript可以在任何支持JavaScript的地方运行,而要对代码做进一步优化的话,则需要(不太流行的)Dart虚拟机 。

关于TypeScript语言及其演示的更多信息,可以观看Anders Hejlsberg在微软的Channel 9上的介绍。




TAG: