微软发布TypeScript 2.0 RC版本

简介:

微软释放了TypeScript 2.0的发布候选版本,包含了tagged union功能以及对globs的支持。

在微软博客的声明中,TypeScript的项目主管Daniel Rosenwasser这样说到:

“这个RC版本能够帮助我们了解完整的2.0版本会是什么样子,我们正在寻求广泛的反馈,使其更加稳定,从而让2.0成为一个可靠的发布版本。整体而言,对于通常的使用来说,这个RC版本足够稳定,从这个时间点开始,我们不会再添加重要的新特性了。”

其实,从2.0 beta版本发布到现在,有很多新内容添加了进来。

在TypeScript的发布候选版本中,最重要的更新之一就是tagged union。

Rosenwasser说到,“借助tagged union功能,我们能够按照现在编写JavaScript的模式,更加容易地实现类型安全性”。在这个领域,JavaScript可能已经落后于像F#、Swift和Rust这样的语言,通过tagged union,TypeScript能够基于kind域来识别类型,如下所示:

function getArea(shape: Shape) { switch (shape.kind) { case "circle": //从'Shape'转换为'Circle' let c = shape as Circle; return Math.PI * c.radius 2; case "square": //从'Shape'转换为'Square' let sq = shape as Square; return sq.sideLength 2; }}
该特性是针对TypeScript 1.8的功能增强,在1.8版本中需要对shape中的每个类型进行类型断言。(以上的样例是针对1.8版本的,针对2.0版本的完整样例可以参考微软的发布声明。——译注)

这个发布版本还支持globs,进一步扩展了TypeScript 1.6的exclude域。TypeScript 2.0允许开发人员为路径编写通配符,Rossenwasser说这可以是任意粒度的,它们可以用在新增的include域上,也可以用在已有的exclude域中,如下所示:

{ "include": [ "./src//*.ts" ], "exclude": [ "./src/tests/" ]}
TypeScript 2.0发布候选版本需要使用Microsoft Visual Studio 2015 Update 3,这个版本解决了多项有较大影响的bug,包括“在调试Visual C++或CLI代码时,提升了调试的稳定性”,另外,还解决了“在std::min/std::max这样代码调用函数中,针对浮点值使用时,可能会出现的错误编译(miscompilation)问题。”

开发社区对这个RC版本总体上是很乐观的。在Reddit上,Vheissu_这样说到,“对TypeScript而言,这是一个巨大的飞跃。现在,已经不可能回到简单原始的ECMAScript上了。”

用户cspotcode问了这样一个问题:

lib.dom.d.ts的Node.nodeType域会升级到discriminated unions吗?这会不会让当前的类型变得太混乱?看上去,如果Node.nodeType依然是一个number的话,那么Element.nodeType就不能是数字的字面量,因为这会违背Element扩展Node这一前提。Node应该需要重写,使其成为一个union类型,而不是接口。

Rossenwasser这样进行了答复:

这是完全有可能的——你可以将所有返回Node的地方都想象为返回新的类型,这个新类型代表了一个union。目前,对我来言,扩展Node的语义是什么尚不清晰,但是如果你有什么想法的话,我们会认真倾听!你尽可以对此开一个issue。

当问及开发人员何时可以等到2.0的最终版时,Rossenwasser大致估算为“几周之后“,但是他又说不要严格以此为准。
本文转自d1net(转载)

相关文章
|
1月前
|
资源调度 JavaScript 编译器
2024 年 3 月 1 日安装 Composable Storefront 2211 遇到 Angular 和 TypeScript 版本不匹配的错误
2024 年 3 月 1 日安装 Composable Storefront 2211 遇到 Angular 和 TypeScript 版本不匹配的错误
21 0
|
9月前
|
缓存 移动开发 JavaScript
基于 vue-element-admin 升级的 Vue 3 + TypeScript + Element-Plus 版本后台管理系统正式开源
基于 vue-element-admin 升级的 Vue 3 + TypeScript + Element-Plus 版本后台管理系统正式开源
|
JavaScript
TypeScript基础笔记(小满版本)(六)
TypeScript基础笔记(小满版本)(六)
125 0
|
XML JSON JavaScript
TypeScript基础笔记(小满版本)(五)
TypeScript基础笔记(小满版本)(五)
215 0
|
JavaScript 前端开发 编译器
TypeScript基础笔记(小满版本)(四)
TypeScript基础笔记(小满版本)(四)
219 0
|
JavaScript 前端开发 数据库
TypeScript基础笔记(小满版本)(二)
TypeScript基础笔记(小满版本)(二)
207 0
|
设计模式 JavaScript 安全
TypeScript基础笔记(小满版本)(三)
TypeScript基础笔记(小满版本)(三)
155 0
|
JavaScript 前端开发 安全
TypeScript基础笔记(小满版本)(一)
TypeScript基础笔记(小满版本)(一)
263 0
|
JavaScript 前端开发 编译器
TypeScript 发布 4.7 beta 版本
TypeScript 发布 4.7 beta 版本
265 0
TypeScript 发布 4.7 beta 版本
|
JavaScript
ng serve出错,关于TypeScript的版本问题
ng serve出错,关于TypeScript的版本问题
ng serve出错,关于TypeScript的版本问题