在线文档教程

TypeScript 2.5

TypeScript 2.5

可选的catch子句变量

TypeScript 2.5 实现了新的 ECMAScript 功能,允许用户省略catch子句中的变量。例如,在使用时,JSON.parse您可能需要用try/ 来包装对函数的调用catch,但是SyntaxError当输入错误时,您可能不会使用该函数。

let input = "..."; try { JSON.parse(input } catch { // ^ Notice that our `catch` clause doesn't declare a variable. console.log("Invalid JSON given\n\n" + input) }

在checkJs/ @ts-check模式中键入断言/强制转换语法

在您的项目中使用普通 JavaScript 时, TypeScript 2.5 引入了声明表达式类型的功能。语法是一个/** @type {...} */注释注释,后跟一个需要重新评估其类型的带括号的表达式。例如:

var x = /** @type {SomeType} */ (AnyParenthesizedExpression

重复数据删除和重定向的软件包

当 TypeScript 2.5中使用Node的模块解析策略导入时,编译器现在将检查文件是否源自“完全相同”的包。如果一个文件从一个包起源与package.json含有相同nameversion领域先前遇到的包,然后将打字稿自身重定向到最顶层的包。这有助于解决两个包可能包含相同的类声明,但其中包含private导致它们在结构上不兼容的成员的问题。

作为一个很好的奖励,它还可以通过避免.d.ts从重复包加载文件来减少编译器和语言服务的内存和运行时间占用空间。

The --preserveSymlinks compiler flag

TypeScript 2.5 带来了preserveSymlinksNode.js中的--preserve-symlinks标志行为并行的标志。该标志也呈现相反的行为来的 WebPack 的resolve.symlinks选项(即设定打字稿的preserveSymlinkstrue平行设置的WebPack的resolve.symlinksfalse,反之亦然)。

在这种模式下,对模块和包的引用(例如imports和/// <reference type="..." />指令)都是相对于符号链接文件的位置而不是相对于符号链接解析的路径来解析的。有关更具体的示例,我们将遵循网站上Node.js 的文档。