[关闭]
@sambodhi 2017-09-13T01:55:59.000000Z 字数 1296 阅读 1706

TypeScript 2.5 发布,增加语言级重构 (微信供稿)

Microsoft 已经发布了 TypeScript 2.5 ,这个版本并不侧重于新的语言特性,而是增加了包括内置于语言服务自身的基本重构这样的新功能。由于 Microsoft 专注于提高开发人员的生产力,TypeScript 2.8 的范围已经超出了代码编辑器所提供的常见功能。

习惯于类型语言(如 C#)的开发人员喜欢使用那些可以轻松执行常见重构的工具。现在,TypeScript 为开发人员带来了极大的便捷: TypeScript 可以利用其语言代码知识来执行 Extract FunctionExtract Method 的重构了。但值得注意的是, TypeScript 是一种语言服务而非编辑器,因此将此功能添加到语言服务中意味着所有的编辑器都可以通过挂接服务来实现重构。

TypeScript 项目经理 Daniel Rosenwasser 在Reddit上曾经 表示,该团队注重提高开发人员的体验,而不仅仅是语言(参见网址:https://www.reddit.com/r/programming/comments/6x81ci/announcing_typescript_25/dme26td/):

TypeScript 是基于编辑经验开发的一种语言,因此我们团队在编辑器/类型检查器以及支持编辑器(如 VS Code)的语言服务方面投入了精力。它不仅仅是 VS 和 VS Code,这些变更对任何使用我们语言服务的编辑器都有效,因此,我认为这些编辑功能对 TypeScript 用户来说很有价值。

TypeScript 2.5 的重构将会在 VS 代码和 Visual Studio 中率先得到应用。

微软还通过捕获 JSDoc 类型声明和不正确的类型引用的意外用法,来提升工具集的“快速修复”。在 TypeScript 2.1 中首先提供了快速修复语言服务的 API ,包括:拼写错误、丢失 import 、丢失 this 以及未使用的声明。更多方面的修复功能已经完成规划,详情可参见这个网址:https://github.com/Microsoft/TypeScript/wiki/Roadmap

这次发布的 TypeScript 2.8 并不侧重于语言特性,但其中唯一值得注意的就是可选的 catch 变量。当开发人员需要捕获错误时这个特性就非常有用,开发者不必关心这个错误的实际内容。这个特性实际上是 ECMAScript 提案的一部分(参见 https://tc39.github.io/proposal-optional-catch-binding/)。以下示例未包括捕获错误的声明,现在这么写是成立的:

  1. try {
  2. const result = someMethodThatWillThrowAnException();
  3. }
  4. catch {
  5. contents = createDefaultContents();
  6. }

和以前一样,最新版本的 TypeScript 可以通过 npm install -g typescriptor 或通过 NuGet 来安装。

查看英文原文:TypeScript 2.5 Released, Adds Language Level Refactoring

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注