TypeScript
satisfies 关键字
即希望确保某个表达式符合特定类型,又想要保留该表达式最具体的类型以便进行类型推断。
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>;