유틸리티 타입 2

유틸리티 타입 2

이번에는 또 다른 유틸리티 타입인 Pick, Omit, Record에 대해 알아보자.Pick객체 타입으로부터 특정 프로퍼티만 딱 골라내는 타입 초창기 게시판을 만들 때 게시판 객체를 다음과 같이 설정했다고 가정하자. 근데 서비스를 제공하다보니 게시판에 변화가 생기면서 게시판 객체가 다음과 같이 업그레이드 되었다. 그런데 게시판 객체를 업그레이드 하고보니 다음과 같이 옛날에 작성된 글에는 태그가 없는 상태가 발견됐다. 이럴 경우 옛날 게시판과 현재 게시판 객체 두 가지를 모두 만드는 것이 아니라 Pick이라는 유틸리티 타입을 적용하면 편하다. Pick 타입 역시 맵드 타입과 인덱스드 엑세스를 활용하여 쉽게 구현할 수 있다.Omit객체 타입으로부터 특정 프로퍼티를 제거하는 타입 Pick이 특정 프로퍼티를 골..

언어/TypeScript 2024.10.29

유틸리티 타입 1

이번에는 TypeScript에 내장된 유틸리티 타입을 알아보자.오늘 볼 유틸리티 타입은 Partial, Required, Readonly 세 가지로 전부 맵드 타입 기반으로 만들어진 타입이다.Partial특정 객체 타입의 모든 프로퍼티를 선택적 프로퍼티로 바꿔주는 타입 전체적인 예시를 게시판으로 들어보자.우선, 다음과 같은 게시글 객체를 만들었다. 그런데 우리는 이 게시판에 임시 저장이라는 기능을 만들고자 한다.그리고 임시 저장 기능을 만들자니 내용이나 태그가 없는 상태로 글을 저장해야 하는 경우가 발생한다. 어쩌면 제목이 없는 상태로 임시 저장이 필요할 수도 있다.이때, 임시 저장을 위한 타입을 새롭게 생성하지 않고 다음과 같이 유틸리티 타입을 적용해서 해결할 수 있다. Partial 타입을 맵드 타입..

언어/TypeScript 2024.10.29