satisfies
satisfies 可以在不改变条件变量类型的前提下,强制对变量进行条件判断。
type RGB = [red: number, green: number, blue: number];
type Color = RGB | string;
const myColor = 'blue' satisfies Color; // works
const myIncorrectColor = 420 satisfies Color; // error
myColor.toUpperCase(); // valid because myColor is a string
accessor
TS 4.9支持 ECMAScript 中即将推出的称为 auto-accessor 的特性。自动访问器的声明方式与类的属性类似,只不过它们是用 accessor 关键字声明的。
class Person {
accessor name: string;
constructor(name: string) {
this.name = name;
}
}
NaN
TypeScript 现在在与 NaN 的直接比较中出现错误,并建议改用 Number.isNaN 的一些变体。
Remove Unused Imports 和 Sort Imports
增加了移除未使用的包的导入命令和排序导入命令。
使用 in 运算符缩小未列出的属性
作为开发人员,我们经常需要处理在运行时不完全知道的值。事实上,我们通常不知道是否存在属性,是否从服务器获得响应或读取配置文件。JavaScript 的 in 操作符可以检查对象上是否存在属性。
当缩小根本不列出属性的类型时,TypeScript 4.9使 in 运算符更强大一些。语言不会保持它们的原样,而是使用 Record < “ property-key-being-check”,known > 与它们的类型相交。
网友评论