TypeScript satisfies 연산자
특정 타입을 만족하는지 검증과 함께 객체 속성 타입을 구체적으로 추론하는 satisfies 연산자
작성일 : 2025.02.26
TIL
TypeScript
개요
- 특정 타입을 만족하는지 검증과 함께 객체 속성 타입을 구체적으로 추론함
- TypeScript 4.9 버전에서 도입
사용 예시
-
객체 타입을 명시적으로 검증 + 내부 필드 구체적인 타입 추론 가능
type ApiResponse = { success: boolean; message: string; data: any; }; const response = { success: true, message: 'Data fetched successfully', data: { id: 1, name: 'John Doe' }, } satisfies ApiResponse; // response.data는 any가 아닌 { id: number; name: string; }로 정확히 추론됨
-
유니언 타입의 사전 검증(prevalidating)
type MyState = string | { key: string }; const state = "active" satisfies MyState; // "active"는 MyState 타입을 만족하며 에러 없이 처리됨
-
타입 좁히기
type Data = { a: string; b: number; c?: boolean }; const baseData = { a: "A", b: 1, } satisfies Partial<Data>; // baseData는 Partial<Data>가 아닌 { a: string; b: number }로 추론됨
참조
- https://blog.hansolbangul.com/post/typescript-satisfies-1, TypeScript에서 satisfies와 as const로 리터럴 타입 안전하게 다루기, 지한솔
- https://mycodings.fly.dev/blog/2023-07-14-understanding-typescript-satisfies-operator, 타입스크립트 satisfies 연산자(operator) 이해하기, myCodings.fly.dev
- https://blog.cinntiq.synology.me/satisfies/, 타입스크립트의 satisfies, Hameln