[모투] TS 유틸리티 타입

Chanyoung Park·2024년 5월 19일
0

서론

문제 상황

  • AmountStockStockInfo의 필드만을 합친 새로운 TAmountStockInfotype이 필요해짐

  • 기존의 TAmountStockInfo은 아래와 같이 정의를 하였는데, 아래 이미지와 같이 타입 오류가 발생하였다.
export type TAmountStockInfo = AmountStock & StockInfo;

  • 그 내용인 즉슨, StockInfo 클래스에는 updateInfo라는 메소드의 property가 존재하나, 이에 대한 value가 없다는 것이었다.

해결방법

  • AmountStock과 StockInfo의 값이 변경될 경우 AmountStockInfo도 함께 변경해야 하기에, 연결되지 않은 별도의 type으로 정의하기는 싫었다.
  • 그래서 찾은 방법이 Typescript의 유틸리티 타입인데, Partial, Pick, Omit 등이 존재한다.

  • Partial : 특정 타입의 부분 집합을 만족하는 타입을 정의할 수 있다.
  • Pick : 특정 타입에서 몇 개의 속성만 선택하여 타입을 정의할 수 있다.
  • Omit : 특정 타입에서 몇 개의 속성을 제거하여 타입을 정의할 수 있다.

  • 나의 경우에는 updateInfo 속성 하나만 방해가 되므로, Omit를 사용하여 새로운 타입을 병합하였다.
export type TAmountStockInfo = AmountStock & Omit<StockInfo, "updateInfo">;

참고

profile
더 나은 개발경험을 생각하는, 프론트엔드 개발자입니다.

0개의 댓글