예제

type Color = string | { r: number, g: number, b: number };

// ❌ 일반 타입 선언: red가 'string'인지 'object'인지 확신할 수 없어 에러 발생
const palette1: Record<string, Color> = {
    red: "ff0000",
    blue: { r: 0, g: 0, b: 255 },
};
palette1.red.toUpperCase(); // 에러: red가 객체일 수도 있음

// ✅ satisfies 사용: red가 'string'임을 기억하여 에러 없음
const palette2 = {
    red: "ff0000",
    blue: { r: 0, g: 0, b: 255 },
} satisfies Record<string, Color>;

palette2.red.toUpperCase(); // 정상 작동

image.png

image.png

image.png