TypeScript-섹션8. 타입 조작하기-타입 조작이란(0)

손주완·2025년 7월 15일

Typescript Section8

목록 보기
1/5
post-thumbnail

선요약

타입스크립트에서 타입 조작이란 기존 타입(기본 타입, 인터페이스, 타입 별칭 등)을 상황에 따라 동적으로 변형하는 기능을 의미함. 주요 도구로는 인덱스드 엑세스 타입, keyof 타입, 맵드 타입, 템플릿 리터럴 타입 등이 있으며, 제네릭 또한 타입 조작의 일부로 볼 수 있음. 이 기능들은 실무에서 유용하게 사용되며, 코드의 재사용성과 유연성을 크게 향상시킴.


타입 조작이란

타입을 조작한다는 것은 기존의 기본 타입이나 별칭, 인터페이스로 만들어진 타입들을 상황에 따라 유동적으로 다른 타입으로 변형하는 기능임. 이는 타입스크립트의 강력하고 독특한 기능 중 하나임.

이전에 배운 제네릭 또한 함수나 인터페이스, 타입 별칭, 클래스 등에 적용해서 상황에 따라 달라지는 타입을 정의할 수 있기 때문에 타입 조작 기능의 일종임. 다만 그 내용이 방대해 따로 분리해 학습했음.

타입스크립트는 제네릭 외에도 여러가지 타입 조작 기능을 제공함. 이번 섹션에서는 제네릭과 다음에 다룰 조건부 타입을 제외한 4가지 대표적 타입 조작 기능을 정리함:


1. 인덱스드 엑세스 타입

객체, 배열, 튜플 등의 타입에서 특정 프로퍼티나 요소의 타입만 추출할 수 있게 함.
예시: type NameType = User["name"] → User 타입의 name 프로퍼티 타입만 따로 추출함.


2. keyof 타입

객체 타입 내의 프로퍼티 이름들을 문자열 리터럴 유니온 타입으로 추출함.
예시: type UserKeys = keyof User → "name" | "age" | "email" 같은 유니온 타입이 됨.


3. 맵드 타입

기존 객체 타입을 기반으로 새로운 객체 타입을 정의함. 자바스크립트의 map 함수와 유사한 역할을 함.
예시: 모든 프로퍼티를 optional 하게 바꾸는 타입을 정의할 수 있음.
type Partial<T> = { [P in keyof T]?: T[P] }


4. 템플릿 리터럴 타입

기존 문자열 리터럴 타입을 기반으로 정해진 패턴의 문자열만 포함하는 타입을 만들 수 있음.
예시:
type Color = "red" | "blue"
type BrightColor = \bright-${Color}` → "bright-red" | "bright-blue"
업로드중..


이러한 기능들은 단순한 문법 외에도, 실무에서 어떤 상황에 이 기능을 써야 효과적인지를 이해하는 것이 중요함. 각 기능들은 심플하지만 실전에서 자주 쓰일 수 있는 예제들과 함께 학습할 예정임.


요약

  • 타입 조작이란 기존 타입들을 변형하여 새로운 타입을 만들어내는 기능임.
  • 대표적 조작 도구: 인덱스드 엑세스 타입, keyof, 맵드 타입, 템플릿 리터럴 타입.
  • 제네릭도 타입 조작의 일종으로 간주함.
  • 이런 기능들은 코드의 유연성, 재사용성, 안전성을 높이는데 매우 유용함.

0개의 댓글