더북(TheBook)
type HelloAndHi = {
  [key in 'hello' | 'hi']: string;
};
/*
type HelloAndHi = {
  hello: string;
  hi: string;
}
*/

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

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

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