Language/Typescript

[Typescript] 자주 쓰이는 Utility Types 정리하기

Joonfluence 2022. 2. 16.

본론

오늘은 타입스크립트에서 자주 활용되는 Utility Types에 관하여 간단하게 정리하는 시간을 갖겠습니다.

Partial < Type >

Partial은 모든 타입을 옵셔널하게 불러옵니다.

Pick < Type, Keys >

Pick은 특정 타입의 일부분을 불러와 사용합니다. 타입의 key 값을 통해 가능합니다.

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

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

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

Required < Type >

모든 타입을 필수 타입으로 지정합니다. 기존 속성타입이 옵셔널이었다고 하더라도, 필수 타입으로 지정됩니다.

Readonly < Type >

재할당이 되지 않는 타입으로 설정합니다.

interface Todo {
  title: string;
}

const todo: Readonly<Todo> = {
  title: "Delete inactive users",
};

todo.title = "Hello";
Cannot assign to 'title' because it is a read-only property.

Record < Keys, Type >

객체 형태의 타입을 지정해줍니다.

interface CatInfo {
  age: number;
  breed: string;
}

type CatName = "miffy" | "boris" | "mordred";

const cats: Record<CatName, CatInfo> = {
  miffy: { age: 10, breed: "Persian" },
  boris: { age: 5, breed: "Maine Coon" },
  mordred: { age: 16, breed: "British Shorthair" },
};

cats.boris;

Omit < Type, Keys >

Omit은 선택된 Keys의 타입을 생략하고 불러옵니다.

Exclude < UnionType, ExcludedMembers >

Exclude는 유니온 타입에서 선택된 타입을 빼고 불러옵니다.

Extract < UnionType, Union >

Extract는 유니온 타입에서 불러오고자 하는 일부 유니온 타입만을 불러옵니다.

NonNullable < Type >

NonNullable은 타입 중 null과 undefined를 빼고 불러옵니다.

Parameters < Type >

함수의 파라미터에 대한 type을 가져옵니다.

InstanceType < Type >

주로 클래스의 인스턴스 형식으로 타입을 지정합니다.

class C {
  x = 0;
  y = 0;
}

type T0 = InstanceType<typeof C>;
type T0 = C

참조한 사이트

타입스크립트 공식 문서

반응형

댓글