TS_매핑타입

jhson·2024년 1월 19일
0

typescript

목록 보기
3/7

TypeScript에서의 매핑 타입은 기존 타입들을 가지고 새로운 타입을 만들 때 사용되는 강력한 도구 중 하나입니다. 매핑 타입은 기존의 타입을 변형하거나 새로운 타입을 생성하는 데 사용됩니다. 주로 제네릭 타입과 함께 사용되며, keyof와 같은 키 관련 연산자와 함께 사용되면 더욱 강력한 표현력을 얻을 수 있습니다.

다음은 몇 가지 TypeScript 매핑 타입의 예시입니다:

1. Readonly: 해당 타입의 모든 속성을 읽기 전용으로 만듭니다.

type OriginalType = {
    name: string;
    age: number;
};

type ReadonlyType = Readonly<OriginalType>;

// ReadonlyType은 { readonly name: string; readonly age: number; }와 같습니다.

2. Partial: 해당 타입의 모든 속성을 선택적으로 만듭니다.

type OriginalType = {
    name: string;
    age: number;
};

type PartialType = Partial<OriginalType>;

// PartialType은 { name?: string; age?: number; }와 같습니다.

3. Record<K, T>: 주어진 키 타입 K와 값 타입 T로 이루어진 새로운 객체 타입을 생성합니다.

type MyMap = Record<string, number>;

// MyMap은 { [key: string]: number }와 같습니다.

4. Mapped Types: 매핑 타입을 직접 사용하여 새로운 타입을 생성할 수 있습니다.

type Flags = {
    isLogged: boolean;
    isAdmin: boolean;
    isGuest: boolean;
};

type ReadonlyFlags = {
    readonly [K in keyof Flags]: boolean;
};

// ReadonlyFlags는 { readonly isLogged: boolean; readonly isAdmin: boolean; readonly isGuest: boolean; }와 같습니다.
  • [K in keyof Flags]:

    • keyof Flags는 Flags 타입의 모든 키를 가져오는 부분입니다. [K in ...]는 이 키들에 대한 매핑을 나타냅니다. 따라서 K는 Flags의 각 키를 나타냅니다.
  • K :

    • Flags들의 각 키
  • boolean;:

    • 모든 속성의 값은 boolean 타입입니다. ReadonlyFlags 타입은 Flags 타입과 동일한 키를 가지고 있지만, 각 속성의 값은 boolean 타입으로 고정되어 있습니다.
profile
게임회사 주니어 개발pm에서 프론트엔드 개발자로 전향하는 과정

0개의 댓글