맵드 타입: 이미 정의된 타입을 가지고 새로운 타입을 생성할 때 사용하는 타입 문법

18.1 맵드 타입 첫 번째 예시: in


type HeroNames = "capt" | "hulk" | "thor";
type HeroAttendance = {
    [Name in HeroNames]: boolean;
}

→ HeroNames 타입에 맵드 타입 문법을 적용하여 HeroAttendance라는 새로운 타입을 정의

→ HeroNames 타입은 영웅 이름을 의미하는 3개의 유니언 타입

→ HeroAttendance 타입은 이 영웅 이름을 속성 이름으로 하고 영웅 출석 여부를 해당 속성 값으로 정의

Untitled

이미 정의된 타입으로 새로운 타입을 생성하려면 [Name in HeroNames] 형태의 문법을 사용해야함

for in 반복문은 객체의 키, 값 쌍을 순회할 때 흔히 사용하는 문법

let obj = {
    a: 10,
    b: 20,
    c: 30,
};
for (let key in obj) {
    console.log(key);
}

Untitled

위와 같은 원리로 HeroAttendance 타입의 선언 부분을 보면 [Name in HeroNames]: boolean; 코드가 왜 다음과 같은지 이해할 수 있음

{
	capt: booelan;
	hulk: booelan;
	thor: booelan;
}