メインコンテンツまでスキップ

TypeScript

satisfiter

前提

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

悪い例

const palette: Record<Colors, string | RGB> = {
red: [255, 0, 0],
green: '#00ff00',
};

palette.red[1]; // string | number になってしまう

良い例

const palette = {
red: [255, 0, 0],
green: '#00ff00',
} satisfies Record<Colors, string | RGB>;

palette.red[1]; // ちゃんとnumber になる