mapped type

매핑된 타입은 객체 키를 순회해 새 타입을 만듭니다

keyof로 키 집합을 얻고 in으로 순회하며 readonly, optional 수정자와 key remapping으로 객체 타입을 변환합니다.

keyof

키 집합

객체 타입의 속성 이름을 union으로 꺼내 매핑 대상 목록을 만듭니다.

keyof User
in 매핑

속성 순회

각 키를 돌며 값 타입을 유지하거나 새 규칙으로 변환합니다.

[K in keyof T]
수정자

속성 정책

readonly와 optional 표시를 붙이거나 제거해 변형 타입을 만듭니다.

-readonly
키 재매핑

이름 변환

as 절과 template literal type을 이용해 새 속성 이름을 계산합니다.

as `get${K}`