타입스크립트 satisfies 키워드란?

규갓 God Gyu·2025년 4월 15일

면접질문

목록 보기
117/142

기존 타입 정보를 유지하면서 해당 값이 특정 타입 조건을 충족하는지 확인할 때 사용
ex- 유니온 타입 다룰 때 이점

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

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

// ⚠️ 오류 발생
const greenNormalized = palette.green.toUpperCase();
 

palette.green의 타입은 string | RGB로 변환 추론되어서 .toUpperCase() 호출 시 타입 에러 발생함

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

// ✅ 정상 동작
const greenNormalized = palette.green.toUpperCase();

그러나 satisfies를 활용하면 palette.green의 타입이 string으로 추론되어 .toUpperCase() 정상적 호출 가능함

즉, satisfies를 사용하면, 의도보다 더 넓은 타입으로 추론되는 일 방지하며 타입 검사 수행할 수 있음

어떤 상황에서 사용?

유니온 타입의 타입 체크가 필요할 때 유용
또는
객체 리터럴이 필수적인 타입을 만족해야 하고, 동시에 추가적인 필드가 존재할 수 있는 경우에도 유용하게 활용

profile
웹 개발자 되고 시포용

0개의 댓글