BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Jeff Martin 关注 15 他的粉丝 ,译者 臧秀涛 关注 2 他的粉丝 发布于 2012年11月9日. 估计阅读时间: 4 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

作为改进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上的介绍

查看英文原文TypeScript Released to Improve JavaScript Development


感谢王瑜珩对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT