跳到主要内容

TypeScript

satisfies 关键字

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-9.html#the-satisfies-operator

即希望确保某个表达式符合特定类型,又想要保留该表达式最具体的类型以便进行类型推断。

type Colors = "red" | "green" | "blue";
type RGB = [red: number, green: number, blue: number];


const palatte: Record<Colors, string | RGB> = {
red: [255, 0, 0],
green: '#00ff00',
// 这里应该是 blue, 在编译期间就能知道
bleu: [0, 0, 255]
};

satisfies 运算符使我们能够验证表达式的类型是否与某个类型匹配,而不会改变表达式的最终类型。

即上面的代码等效于

const palatte = {
red: [255, 0, 0],
green: "#00ff00",
// 这里应该是 blue, 在编译期间就能知道
bleu: [0, 0, 255],
} satisfies Record<Colors, string | RGB>;