TypeScript/한 입 크기로 잘라먹는 타입스크립트

[타입 조작하기] 타입 조작이란

해갈 2023. 7. 20. 14:05

해당 게시글은

강의 사이트, 인프런에서 이정환님이 진행하시는

'한 입 크기로 잘라먹는 타입스크립트' 

들어보며 블로그를 작성하려고 합니다.

다음 게시글 내용은 해당 강의에 핸드북의 내용으로

출처는 다음과 같습니다.

 

https://ts.winterlood.com/7250edd7-a3fd-4662-b756-f11f927c73f2

 

타입스크립트를 소개합니다 - 타입스크립트 개론

한 입 크기로 잘라먹는 타입스크립트

ts.winterlood.com

 

타입 조작이란?

먼저 타입을 조작한다는 것은

기본 타입이나 별칭 또는 인터페이스로 만든

원래 존재하던 타입들을 상황에 따라 유동적으로 다른 타입으로 변환하는

타입스크립트의 강력하고도 독특한 기능입니다.

 

사실 이전 시간에 배운 제네릭도

함수나 인터페이스, 타입 별칭, 클래스 등에 적용해서

상황에 따라 달라지는 가변적인 타입을 정의할 수 있기 때문에

타입을 조작하는 기능에 포함됩니다.

다만 그 내용이 꽤 방대하기 때문에

짧게만 다루면 이해하시기 어려울 것 같아 따로 떼어서 다뤘습니다.

 

타입스크립트에서는 제네릭 이외에도

타입 조작 기능을 제공합니다.

이번 섹션에서는 지난 시간에 배운 제네릭,

그리고 다음 섹션에서 살펴볼

조건부 타입을 제외한

4가지의 타입 조작 기능을 살펴볼 예정입니다.


첫 번째로 살펴볼 타입 조작 기능은 객체, 배열, 튜플 타입으로부터

특정 프로퍼티나 특정 요소의 타입만 추출하는

'인덱스드 엑세스 타입'입니다.

 

두 번째로는 객체 타입으로부터 

해당 타입 내에 정의된 프로퍼티의 키들을 유니온 타입으로 추출하는

"키오브(Keyof) 타입"에 대해 살펴볼 겁니다.

 

 세 번째로는 마치 자바스크립트의 Map 함수 처럼

기존의 객체 타입을 기반으로 새로운 객체 타입을 만드는

"맵드 타입(Mapped)"에 대해 알아볼 겁니다.

 

마지막 네 번째로는

기존의 스트링 리터럴 타입을 기반으로 정해진 패턴의 문자열만 포함하는

"템플릿 리터럴"에 대해 살펴보겠습니다.

 

 

문법만 딱 배우는 게 아니라 

'어떤 상황에서 새롭게 배우는 기능들을 잘 사용할 수 있는지'  까지 알아보기 위해

최대한 심플하면서도 또 실무에서 직접 만날 수 있을 법한

몇 가지 예제들과 함께 살펴보도록 하겠습니다.