본문 바로가기
개발언어/TypeScript

유틸리티 타입 (Utility Types)

by Ligion 2021. 4. 16.

 

 

Typescript에서는 generic을 사용하여

type이나 interface의 특성을 쉽게 바꿔주는 유틸리티 타입을 제공한다.

사용법만 알면 쉽게 사용할 수 있다.

공홈에는 20여가지의 리스트가 있는데 그 중에 자주 사용하는 몇 가지를 알아보자.


partial(부분적인) : Partial<Type>

전체를 옵셔널(optional)로 바꿔줌

 

 

Partial로 만들어진 Coordinate2 타입은

field들이 모두 optional이기때문에 compile error가 나지않음


required(필요한, 필수인) : Required<Type>

전체를 빠지면 안되는 것으로 바꿔줌

 

 

Partial과는 반대로 모든 field들을 필수로 바꿈


readonly : Readonly<Type>

읽기전용

 

 

target과는 다르게 hanaMt는 읽기전용이기때문에 재정의하면 컴파일 에러가 발생한다.


pick(선택하다) : Pick<Type, Keys>

원하는 내용만 골라서 사용가능

 

interface Todo {
  title: string;
  description: string;
  completed: boolean;
}

type TodoPreview = Pick<Todo, "title" | "completed">;

const todo: TodoPreview = {
  title: "Clean room",
  completed: false,
};

 

Todo중에서 title과 completed 필드만 골라서 사용


omit(누락하다) : Omit<Type, Keys>

원하는 내용을 빼고 사용 가능

 

interface Todo {
  title: string;
  description: string;
  completed: boolean;
  createdAt: number;
}

type TodoPreview = Omit<Todo, "description">;

const todo: TodoPreview = {
  title: "Clean room",
  completed: false,
  createdAt: 1615544252770,
};

 

Pick과 반대로 Todo에서 description을 빼고 사용


공홈에서 나머지 유틸리티 타입들을 확인할 수 있다.

www.typescriptlang.org/docs/handbook/utility-types.html

 

Documentation - Utility Types

Types which are globally included in TypeScript

www.typescriptlang.org

'개발언어 > TypeScript' 카테고리의 다른 글

컴파일러(compiler) 설정 방법  (0) 2021.04.16
type과 interface 차이  (0) 2021.04.16
제네릭 <Generic>  (0) 2021.04.15
타입스크립트의 객체지향  (0) 2021.04.15
타입 단언 (Type Assertions)  (0) 2021.04.12

댓글