BT

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

微软推出TypeScript 1.7

| 作者 David Iffland 关注 4 他的粉丝 ,译者 邵思华 关注 3 他的粉丝 发布于 2015年12月14日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

微软最近发布了TypeScript —— 这个JavaScript超集的语言的1.7版本,新版本兑现了微软的部分承诺,使某些场景中的编程工作更为简便了。

新版本中最受期待的特性就是对async/await语法的支持,目前对于以ES6为目标的项目已经可以使用该语法了。async/await语法允许开发者将某个函数标记为async,通过在异步函数中使用await关键字,开发者就能够以调用同步代码的形式调用异步函数了。目前为止,该语法仅能够用于ES6,因为语法的实现背后使用了代码生成器。

出于该特性的复杂性,直到2.0版本发布之前,以ES5为目标的代码都无法使用这一语法。在另一篇博客中,微软表示对该语法的支持是一个巨大的变动:

为了支持各种浏览器,我们必须使用状态机的方式,将ES6的代码生成器函数重写为能够在ES5中运行的JavaScript。这一任务是一项艰巨的挑战,它需要对编译器代码进行大量的改动,但我们目前正致力于实现它。

如果开发者希望现在就能够在所有浏览器中应用这一特性,可以选择使用Babel

微软在新版本中还引入了多态的this类型,使用它能够更方便地编写fluent风格的代码,如下所示:

var result = myObject.doSomething().doSomethingElse();

按照微软的描述,“this类型可用于类与接口中,用于表现包含类型的某个子类型(而不是包含类型本身)。”如果想详细了解这一特性的应用方式,请查阅TypeScript的Wiki。在Hacker News上的讨论中,用户tlarkworthy对于此特性表现出了极大的热情

在进行泛型编程时,你可能会遇到“无法在类型列表中两次引用同一个类型”的问题,此时多态的this类型就能够派上大用。自从接触过它之后,我已经在许多场合中应用过它了。它能够解决许多问题,例如实现一个clone方法。这个新特性太棒了!

开发者可以通过npm、Visual Studio 2015 Update 1或Visual Studio 2013安装TypeScript 1.7。

查看英文原文:Microsoft Bumps TypeScript to Version 1.7

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

用词不当 by yi yang

"因为语法的实现背后使用了代码生成器"改为"因为语法的实现背后使用了Generator"更合适,其实这个Generator是指ES6的yield特性。

Re: 用词不当 by Chen YuGuo

赞同

允许的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通知我

2 讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT