写点什么

微软推出 TypeScript 1.7

  • 2015 年 12 月 13 日
  • 本文字数:793 字

    阅读完需:约 3 分钟

微软最近发布了 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

2015 年 12 月 13 日 18:001651
用户头像

发布了 428 篇内容, 共 160.8 次阅读, 收获喜欢 31 次。

关注

评论

发布
暂无评论
发现更多内容

架构实战营 - 模块七作业

李东旭

「架构实战营」

架构实战营模块二作业-分析微信朋友圈的高性能复杂度

李焕之

微信朋友圈高性能复杂度分析

消失的子弹

微信 架构 互联网 云原生

微信朋友圈高性能复杂度分析

看,有只猪

【VueRouter 源码学习】第四篇 - 创建路由映射表

Brave

源码 vue-router 9月日更

架构训练营 模块二

初一

Vue进阶(九十六):VuePress 详解

No Silver Bullet

Vue 9月日更

微信朋友圈高性能复杂度分析

Sky

#架构实战营

模块二作业

紫云

11. 有大数据就有人工智能的机会

数据与智能

人工智能

微信朋友圈的高性能复杂度分析与设计

眼镜盒子

架构实战营

架构实战训练营模块 2 作业

Sonichen

架构实战营 - 模块七作业

思梦乐

架构设计系列二 如何抓住架构设计的关键点

nydia

架构训练营 模块二

Leach Sun

模块二作业

bin

解读顶会CIKM'21 Historical Inertia论文

华为云开发者联盟

华为云 论文 长序列时间 时间序列预测 CIKM’21

书单 | 做数字化转型,离不开这10本书!

博文视点Broadview

架构实战营 - 模块二作业

Alex.Wu

架构实战营作业 -- 模块二

冬瓜茶

学习-2

4anonymous

朋友圈高性能复杂度分析

陈家豪

架构实战营

微信朋友圈高性能复杂度分析

Geek_85eb5f

模块七

SAKIN

【Flutter 专题】55 日常问题小结 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

Go的测试框架

Rayjun

Go 语言

自己动手写个微型博客吧,还能实现网页版 Blink,No.1

梦想橡皮擦

9月日更

Node.js 应用全链路追踪技术——[全链路信息获取]

vivo互联网技术

node.js 大前端 编程语言 全链路追踪 语言 & 开发

50亿海量数据如何高效存储和分析? GaussDB (for Cassandra) 3个秘诀搞定

华为云开发者联盟

存储 华为云 海量数据 分析 GaussDB (for Cassandra)

架构实战营 - 模块二作业

Geek_de900a

转型 Golang 开发的心路历程

baiyutang

php 云原生 求职 Go 语言 9月日更

微软推出TypeScript 1.7_JavaScript_David Iffland_InfoQ精选文章