TypeScript 3.4 带来了一些重要的更新和有趣的新功能,其中包括名为 --incremental
的新标志,高阶类型推断等等。
我们来看一下。
更快的持续构建 —— 使用 --incremental标志告诉 TypeScript 保存上次编译中有关项目的信息。下次使用 --incremental
调用 TypeScript 时,它会用这些信息以最小的代价进行检测类型检查。
来自泛型函数的高阶类型推断 —— 在调用返回函数类型的泛型函数的类型参数推断期间,TypeScript 将会(视情况而定)从泛型函数参数把类型参数传递给函数返回值类型。
对只读数组和只读元组的改进 —— 使用只读数组类型更容易一些:
1function foo(arr: readonly string[]) {
2 arr.slice(); // okay
3 arr.push("hello!"); // error!
4}
readonly
元组的新支持。我们可以用 readonly
关键字为任何元组类型添加前缀,使其成为 readonly
元组,就像用数组的简写语法一样。readonly
对应项。const断言—— 为字面量引入一个名为 const 断言的新构造。它的语法是用 const
代替类型名称的类型断言(例如123 as const
)。当你使用 const
断言构造新的表达式时,可以给语言发出下面这些信号:
“hello”
到 string
)readonly
属性readonly
元组对globalThis的类型检查 —— 对ECMAScript 的 globalThis
类型检查的新支持 —— 一个全局变量,它指的是全局范围。globalThis
提供了一种访问全局范围的标准方法,可以在不同环境中使用。
将参数转换为解构对象—— 实现了一个新的重构,将现有函数转换为使用此“命名参数”模式。在存在多个参数的情况下,TypeScript 将提供重构以将参数列表转换为单个解构对象。
可以到官方发布说明了解有关 TypeScript 3.4 所有新功能的更多信息。
[https://devblogs.microsoft.com/typescript/announcing-typescript-3-4/#convert-parameters-to-destructured-object]
虽然 TypeScript 团队尽可能避免引入重大更改,但是这个版本还是有一些更改,所以请务必查看这里[https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes]。