举个例子, 目前对函数中剩余/可变参数的描述必须始终放在函数参数描述的末尾, f(a: number, ...b:string[], c: boolean)便是一个无效的例子
在这一次的升级之后, 通过在函数参数定义中使用可变元组类型..., 而不仅仅是对象
对可变参数的函数进行完整的类型提示
对复杂的, 部分参数类型已知的可变参数进行正确的提示
对Promisify进行完整的类型定义
对诸如curry, apply, compose等高阶函数进行完整地参数类型描述...就算现在没在写什么复杂的高阶函数, 改进类型也仍然能让我们在之后的能够更细节地去描述类型, 正确提示一些不明确的数组类型定义, 改进其他地方的类型提示....如果这种机制还不能满足, 仍然能够通过精准定义的方式来对属性进行类型声明, 并且当这类声明存在时, 他们会被更优先地使用.
短路赋值操作符
对类型方面的改进不感兴趣?...没问题, TypeScript4.0同时实现了处于Stage3的JS特性: 逻辑运算赋值. 新的语法得到支持, 并会被编译到老的环境中也能运行的形式.