TypeScript 2.0 预览

阅读数:2036 2016 年 4 月 5 日

话题:JavaScript语言 & 开发

Anders Hejlsberg 再次来到 2016 年的微软 Build 大会,他谈了 TypeScript 的现状,预览了将会在未来几个月中提供的一些令人惊喜的特性。

Hejlsberg 将他的演讲分成了三个主要部分,在第一个 15 分钟里,他重新讲述了 TypeScript 的精彩故事。“TypeScript:扩展的 JavaScript”是他对这门语言的描述,TypeScript 的目标是缩小“JavaScript 的功能缺口”。演示程序涉及基本类型检查、语句补全以及编译器输出与源代码相比是什么样子。

在经过简单介绍之后,他展示了 TypeScript 自 Build 2015 以来的变化。该团队每 3 到 4 个月就有一次主要发布,去年共有 4 次主要发布。

在一个 Angular 2 演示程序中,Hejlsberg 展示了如何将 TypeScript 编译器嵌入到浏览器中,消除了文件修改后重新编译代码这个单独的步骤。

他又使用 React 重复了同一个演示应用程序,展示了 TypeScript 识别 JSX 的能力,其中 JSX 是一种为 React 开发人员所喜爱的嵌入式标记技术。为了把这一点讲清楚,他重构了一个组件的名称,并展示了 TypeScript 如何更新整个项目中所有这个组件的引用,包括在嵌入式 JSX 代码中。该演示程序集成了webpack和社区驱动的TypeScript 加载器

对于我们的工具——Visual Studio 和 Visual Studio Code——我们的前进方向实际上是使用 TypeScript 基础设施作为 JavaScript 语言服务。Visual Studio Code 已经切换并使用它。

该语言服务名为Salsa,Visual Studio Code 在 0.10.10 版本中切换到它。

修改后的 TypeScript 编译器可以使用开发人员提供的任何jsdoc信息。此外,如果一个项目中有任何 TypeScript 定义文件,那么 Salsa 就可以使用它们为纯旧式的 JavaScript 提供语句补全,不需要 TypeScript。

最后 15 分钟的介绍重点是 TypeScript 的未来。对于 TypeScript 2.0,当前的路线图包括:

  • 非空类型;
  • 基于类型分析的控制流;
  • Async/await 底层支持;
  • 只读属性;
  • 在函数中声明“this”类型;
  • 改进 typings 获取。

2.0 版本预计在“数月”之后完成。

对于即将到来的非空类型,TypeScript 2.0 将新提供一个名为strictNullChecks的编译器标识,剥夺一个类型为undefinednull的能力。Number只能是数值,永远不能是undefinednull

在示例代码中演示了新增的非空类型和基于类型分析的控制流之后,Hejlsberg 就可以宣告:“这段代码没有 Bug”了。

在演讲的最后,一个功能强大的演示程序展示了新 TypeScript 类型检查的强大以及它如何能够轻松应对有时令人难以理解的 JavaScript 方式。“JavaScript 有一些怪异模式,但你可以将这些怪异模式教给编译器,让它检查所有这些东西”,他补充道,“这太疯狂了!”

要了解更多有关 TypeScript 发展方向的细节,请观看完整的 Channel 9 视频“TypeScript 新特性”。

查看英文原文TypeScript 2.0 Preview