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
含有相同name
和version
领域先前遇到的包,然后将打字稿自身重定向到最顶层的包。这有助于解决两个包可能包含相同的类声明,但其中包含private
导致它们在结构上不兼容的成员的问题。
作为一个很好的奖励,它还可以通过避免.d.ts
从重复包加载文件来减少编译器和语言服务的内存和运行时间占用空间。
The --preserveSymlinks compiler flag
TypeScript 2.5 带来了preserveSymlinks
与Node.js
中的--preserve-symlinks标志
行为并行的标志。该标志也呈现相反的行为来的 WebPack 的resolve.symlinks
选项(即设定打字稿的preserveSymlinks
至true
平行设置的WebPack的resolve.symlinks
对false
,反之亦然)。
在这种模式下,对模块和包的引用(例如imports和/// <reference type="..." />指令)都是相对于符号链接文件的位置而不是相对于符号链接解析的路径来解析的。有关更具体的示例,我们将遵循网站上Node.js 的文档。