티스토리 뷰

TypeScript

TS - 맵드 타입

김관장 2022. 5. 18. 18:15

1. 맵드 타입 ?

  • 맵드 타입이란 기존에 정의되어 있는 타입을 새로운 타입으로 변환해 주는 문법을 의미합니다.
  • 자바스크립트 map() API 함수를 타입에 적용한 것과 같은 효과를 가집니다.
type T_1 = 't1' | 't2' | 't3';
type T_2 = { [K in T_1]: number };

/* 
    [K in T_1] == 't1', 't2', 't3'가 순차적으로 들어오고
    들어온 키에 대한 타입을 : number 로 지정 따라서

    type T_2 = {
        t1: number;
        t2: number;
        t3: number;
    }

    와 같음.
*/

 

2. 맵드 타입 사례

/* 
재네릭 타입을 받아 제네릭의 속성 값을 키값으로 키가 가지는 타입을 선택적 프로퍼티로 재정의 
 */
type Subset<T> = {
    [K in keyof T]?: T[K];
}

interface Person {
    age: number;
    name: string;
}

const ageOnly: Subset<Person> = { age: 23 };
const nameOnly: Subset<Person> = { name: 'Tony' };
const all: Subset<Person> = { age: 23, name: 'Tony' };
const empty: Subset<Person> = {};

/* Subset<Person>의 경우

    type Subset = {
        age?: number;
        name?: string;
    }

    와 같기 때문에 위 변수들에서 오류가 나지 않음.
*/

 

 

맵드 타입까지 공부 완료~~ 빨리 개인 프로젝트 진행해보면서 사용해보고 싶다~

 

 

🔗 참고한 글

 

타입스크립트 핸드북

 

joshua1988.github.io

 

'TypeScript' 카테고리의 다른 글

TS - 유틸리티 타입  (0) 2022.05.18
TS - 타입 추론 · 호환 · 단언 · 가드 · 별칭  (0) 2022.05.13
TS - Generics  (0) 2022.05.10
TS - Class  (0) 2022.05.09
TS - 인터페이스  (0) 2022.05.08
댓글