TypeScript(6)-Utility Type

hyeryeon·2024년 10월 14일

TypeScript

목록 보기
6/8

Utility Type

partial

파셔 타입은 특정 타입의 부분 집합을 만족하는 타입을 정의할 수 있다.

interface Address{
  email:string;
  address:string;
}


const all: Address = {email:"asd@asd.com",address:'john'};
//const you = {email:"asd@asd.com"};
//all과 다르게 속성이 둘다 있지않아서 Address타입 사용불가 -> 파셔 사용해보자
const you:Partial<Address> = {email:"asd@asd.com"};
const me:Partial<Address> = {};

pick

픽 타입은 특정 타입에서 몇개의 속성을 선택하여 타입을 정의한다.

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

const todo {
 title:"clean room",
 completed:false
}

여기서 todo의 타입을 어떻게 해줘야하나??
위에서처럼 파셔를 사용해도 가능하다

const todo: Parital<Todo> {
  title:"clean room",
  completed:false
}

그렇지만 픽을 사용하자면

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

type TodoPreview = Pick<Todo, "title"|"completed">;
// 인터페이스 안에서 타입을 픽할건데 어떤것인지 

const TodoPreview {
 title:"clean room",
 completed:false
}

=> 특정 타입에서 몇개의 속성을 pick해서 새롭게 정리

Omit

특정 속성만 제거한 타입을 정의. pick과 반대!!

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

type TodoPreview = Omit<Todo, "description">;
// 필요없는거, 제거할 것을 적어준다.

const TodoPreview {
 title:"clean room",
 completed:false,
   createdAt:123123,
}

Exclude

일반 Union 유형을 전달한 다음 두번째 인수에서 제거할 멤버를 지정한다.

Required

원래 유형이 일부 속성을 선택사항으로 정의한 경우에도 객체에 Required속성이 있는지 확인해야하는 경우가 있다.
-> T에 들어있는 모든 property를 다 required로 만들어버리는것

Record <keys,Type>

속성 키가 keys이고 속성 값이 Type인 객체 type을 구성한다.이 유틸리티는 type의 속성을 다른 type에 매필하는데 사용할 수 있다.

ReturnType < T>

함수 T의 반환 타입으로 구성된 타입을 만든다.

0개의 댓글