官方版本发布链接
https://devblogs.microsoft.com/typescript/announcing-typescript-4-9-beta/#the-satisfies-operator
新的 satisfies 操作符可以验证表达式的类型是否匹配某种类型,而不更改该表达式的结果类型。
The new satisfies operator lets us validate that the type of an expression matches some type, without changing the resulting type of that expression.
这句话怎么理解呢?
satisfies 可以用来捕获很多潜在的错误,例如确保一个对象是否符合某种数据类型(但不会改变对象本身的类型)。
/* 声明一个类型 TypeA */
interface TypeA {
amount: number | string
}
const record = {
amount: 20
} satisfies TypeA
/**
上面的写法:
既保证了 record 是符合 TypeA 类型的,
又不影响 record 的实际类型 为 :
{
amount : number
}
所以在用 record.amount.toFixed(2) 时,
不必进行强制类型转换:
const num = record.amount as number
num.toFixed(2)
**/
正文
下面我们举例介绍 satisfies 的使用场景。
旧时代的类型匹配
在说明之前,我们先来看一个以前旧时代的类型匹配 case :
interface IConfig {
a: string | number
}
/**
*
标签:case,TypeScript,IConfig,4.9,number,类型,const,satisfies
From: https://www.cnblogs.com/eddyz/p/16954780.html