해당 게시글은
강의 사이트, 인프런에서 이정환님이 진행하시는
'한 입 크기로 잘라먹는 타입스크립트' 를
들어보며 블로그를 작성하려고 합니다.
다음 게시글 내용은 해당 강의에 핸드북의 내용으로
출처는 다음과 같습니다.
https://ts.winterlood.com/7250edd7-a3fd-4662-b756-f11f927c73f2
타입스크립트를 소개합니다 - 타입스크립트 개론
한 입 크기로 잘라먹는 타입스크립트
ts.winterlood.com
유틸리티 타입이란
이번 섹션에서는 타입스크립트의 유틸리티 타입에 대해 살펴봅니다.
유틸리티 타입이란
타입스크립트가 자체적으로 제공하는 특수한 타입들입니다.
지금까지 배웠던 제네릭, 맵드 타입, 조건부 타입 등의 타입 조작 기능을 이용해
실무에서 자주 사용되는 유용한 타입들을 모아놓은 것을 의미합니다.
예를 들어 다음과 같이 Readonly<T> 와 같은 유틸리티 타입을 이용해
특정 객체 타입의 모든 프로퍼티를 읽기 전용 프로퍼티로 변환할 수 있습니다.
interface Person {
name : string;
age : number;
}
const person : Readonly<Person> ={
name : "이정환",
age : 27
}
person.name = ''
// ❌ name은 Readonly 프로퍼티입니다.
또는 다음과 같이 Partial<T> 유틸리티 타입을 이용해
특정 객체 타입의 모든 프로퍼티를 선택적 프로퍼티로 변환하는 것도 가능합니다.
interface Person {
name: string;
age: number;
}
const person: Partial<Person> = {
name: "이정환",
};
타입스크립트는 굉장히 다양한 유틸리티 타입을 제공합니다.
아래의 타입스크립트 공식문서에서 다양한 유틸리티 타입들을 확인할 수 있습니다.
https://www.typescriptlang.org/docs/handbook/utility-types.html
Documentation - Utility Types
Types which are globally included in TypeScript
www.typescriptlang.org
그런데 아직은 이렇게나 많은 유틸리티 타입들을 모두 살펴볼 필요는 없습니다.
따라서 이번 섹션에서는 가장 자주 활용되는 핵심 유틸리티 타입만 추려서 알아보 예정입니다.
또 단순히 유틸리티 타입들의 사용법만 알아보는 데에 그치는 게 아니라
지금까지 배운 타입스크립트 지식으로 직접 유틸리티 타입을 구현해 보겠습니다.
그 결과 이제는 언어가 제공하는 기능을 이용하는 수준을 넘어,
직접 다양한 기능을 조작하고 만들어보고 변형할 수 있는 수준급의 지식을 갖추게 될 것입니다.
다음 시간부터 맵드 타입 기반의 유틸리티 타입부터 조건부 타입 기반 유틸리티 타입을 살펴보겠습니다.
'TypeScript > 한 입 크기로 잘라먹는 타입스크립트' 카테고리의 다른 글
[유틸리티 타입] Pick, Omit, Record (0) | 2023.07.24 |
---|---|
[유틸리티 타입] Partial, Required, Readonly (0) | 2023.07.24 |
[조건부 타입] infer (0) | 2023.07.24 |
[조건부 타입] 분산적인 조건부 타입 (0) | 2023.07.21 |
[조건부 타입] 조건부 타입 (0) | 2023.07.21 |