写点什么

TypeScript 3.6 Beta 发布 对迭代器和生成器函数引入更严格检查

  • 2019 年 7 月 24 日
  • 本文字数:1221 字

    阅读完需:约 4 分钟

TypeScript 3.6 Beta发布 对迭代器和生成器函数引入更严格检查

近日,Microsoft 的 TypeScript 项目经理 Daniel Rosenwasser 在官网宣布 TypeScript 3.6 Beta 发布。在接下来的几周,开发人员将改正可能出现的错误以提升性能和稳定性,预计 TypeScript 3.6 将于今年 8 月底发布。Daniel 和他的团队表示,希望人们给测试版一点关注,让他们知道它的表现究竟如何。



新版本变化


TypeScript 3.6 引入了对迭代器和生成器函数的更为严格的检查。在较早的版本中,生成器的用户无法区分值是生成器生成的还是返回的。



这是为了响应“添加 __spreadArrays 助手”的拉取请求,声明“在不使用 --downlevelIteration 时,添加 __spreadArrays 助手以获得更准确的传播行为”。


在 ES2015 之前的目标中,对于像 for/of 循环和数组扩展这样的结构,最忠实的发出可能会有点沉重。出于这一原因,TypeScript 默认使用更简单的发出。它只支持数组类型,并且支持使用 —downlevelIteration 标志迭代其他类型。在此标志下,发出的代码更准确,但更大。



Promises 是目前处理异步数据最常见的方法之一。不幸的是,使用 Promise 面向对象的 API 常常会令用户感到困惑。TypeScript 3.6 引入了一些改进,以防止 Promise 被错误处理。


例如,在将其传递给另一个函数之前忘记 .then() 或者 await 内容通常是很常见的 Promise。TypeScript 的错误消息现在是专用的,并会告知用户他们可能应该考虑使用 await 关键字。



像 Visual Studio 和 Visual Studio Code 这样的编辑器可以自动应用快速修复,重构和其他转换,例如自动从其他模块导入值。这些转换由 TypeScript 提供支持,旧版本的 TypeScript 无条件地在每个语句的末尾添加分号。不幸的是,这不同于许多用户的风格指南,许多用户对编辑器插入分号感到不满。


TypeScript 现在足够智能,可以在应用这些编辑时检测使用者的文件是否使用分号。如果文件通常缺少分号,则 TypeScript 不会添加。


除此之外,文档中还提到诸如,字符串命名构造函数是“construstor”,DOM 更新以及 JSDoc 注释分开等重要变化。


TypeScript 成为“十大语言”之一

近日,RedMonk 发布 2019年6月编程语言排名。令人意外的是,TypeScript 挤进了前十。



各种编程语言在 Stack Overflow 和 GitHub 上受欢迎程度排名示意图 (图源:RedMonk)



RedMonk 编程语言排名结果(2019 年 6 月)(图源:RedMonk)


除了 2018 年的一个季度 Swift 排名第 10 之外,我们已经有 5 年没有看到其他语言进入“十大语言榜单”。然而,在本季度排名中,TypeScript 的排名持续上一季度的增长态势,从第 12 位飙升至第 10 位,超过了 Objective-C 和快速发展的 Swift。三年前的这个时候,TypeScript 刚刚突破到第 26 位,此前它已经在 30 名左右的位置衰落了很多年。现在,JavaScript 的无处不在,加上 TypeScript 提供的可选安全性已被证明是一个成功的组合。


原文链接:


Announcing TypeScript 3.6 Beta


相关链接:


TypeScript 3.6 迭代计划


TypeScript路线图


2019 年 7 月 24 日 16:511571
用户头像
王文婧 InfoQ编辑

发布了 126 篇内容, 共 64.3 次阅读, 收获喜欢 262 次。

关注

评论 1 条评论

发布
用户头像
在这里做一个小小的调查,请问大家在使用TS吗?此次发布的Beta版本有哪些新特性比较吸引您?如果您还没有使用过TS,原因是什么呢?欢迎各位留言~
2019 年 07 月 24 日 17:23
回复
没有更多了
发现更多内容

装修记

escray

生活记录 8月日更

Linux之file命令

入门小站

Linux

架构实战营 - 模块六作业

Julian Chu

架构实战营

关于我尝试抓包微信失败后想到的新方法居然和奥特曼有关~

4ye

Python TCP 爬虫 后端 8月日更

架构实战营模块 6 作业指导

华仔

#架构实战营

Go 泛型初体验

Rayjun

Go 语言

04. 实用主义的人工智能

数据与智能

人工智能

模块六作业

king

架构实战营模块6作业

技术是伙伴

架构实战营

WebAssembly影响未来WEB技术

devpoint

Unity webassembly 8月日更

故事篇:终于给老婆讲明白什么是logback了!

阿Q说代码

故事 实战 logback 8月日更

百度地图开发 - 在地图上检索数据 08

Andy阿辉

android Android 小菜鸟 Android端 8月日更

Golang:并发操作中常见的读写锁

Regan Yue

读写锁 Go 语言 8月日更

模块六作业

袁小芬

身份验证绕过漏洞分析

网络安全学海

黑客 网络安全 信息安全 WEB安全 安全漏洞

打破DPDK的误区: 数据面最流行的工具包DPDK,前世今生,未来

奔着腾讯去

Linux Kenel DPDK VPP

Vue进阶(八十一):Vue+element UI 实现“回到顶部”按钮组件

No Silver Bullet

Vue 8月日更

新书介绍 -- 《Redis核心原理与实践》

binecy

redis cluster 书籍 redis sentinel Redis Stream

系统对接阿里云短信接口(Java开发实践)

Python研究者

8月日更

Python代码阅读(第20篇): 展开嵌套列表2

Felix

Python 编程 Code Programing 阅读代码

工具库用久了,你还会原生操作 Cookie 吗?

编程三昧

JavaScript 大前端 Cookie 8月日更

面试侃集合之PriorityBlockingQueue篇

码农参上

Priority Queue 8月日更

操作系统课程学习记录

春秋易简

操作系统

要智能,得懂行,“要得”重庆

脑极体

在线JSON转CSV,TSV工具

入门小站

工具

Vue进阶(八十二):updated 应用详解

No Silver Bullet

Vue 8月日更

Spark :: 大画Spark(前传)—Spark的Dispatcher原理

dclar

spark 架构 源代码

网络攻防学习笔记 Day119

穿过生命散发芬芳

网络安全 8月日更

☕【Java技术指南】「TestNG专题」单元测试框架之TestNG使用教程指南(下)

浩宇天尚

Java JUnit 8月日更 testNG

架构实战营 - 模块六作业

思梦乐

基于Netty,20分钟手撸一个RPC框架

码农参上

netty 8月日更

TypeScript 3.6 Beta发布 对迭代器和生成器函数引入更严格检查-InfoQ