TypeScript satisfies 연산자

특정 타입을 만족하는지 검증과 함께 객체 속성 타입을 구체적으로 추론하는 satisfies 연산자

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
copyright by dabin jeong