type HelloAndHi = {
      [key in 'hello' | 'hi']: string;
    };
    
    /*
    type HelloAndHi = {
      hello: string;
      hi: string;
    }
    */

    in 연산자를 사용해서 인덱스 시그니처가 표현하지 못하는 타입을 표현합니다. in 연산자 오른쪽에는 유니언 타입이 와야 합니다. 유니언 타입에 속한 타입이 하나씩 순서대로 평가되어 객체의 속성이 됩니다. 먼저 'hello': string이 속성이 되고, 다음에는 'hi': string이 속성이 되어 최종적으로 { hello: string, hi: string } 객체가 됩니다.

    다만 매핑된 객체 타입은 이것보다는 좀 더 복잡한 상황에 주로 사용합니다. 다음은 기존 객체 타입을 복사하는 코드입니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.