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(); // 정상 작동


satisfies를 사용한 상수의 실제 타입