TypeScript에서 유틸리티 타입 이해하기: Partial, Readonly, Pick, 그리고 Record를 예제로 설명

발행: (2026년 4월 15일 PM 11:13 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

TypeScript에서 유틸리티 타입이란?

유틸리티 타입은 기존 타입을 기반으로 새로운 타입을 변환하거나 구성하는 데 도움을 주는 내장 제네릭 타입입니다. 타입 조작을 간단하게 만들어 코드의 안전성과 표현력을 높여줍니다.

Partial

목적

타입의 모든 속성을 선택적으로 만듭니다.

사용 시점

객체의 일부만 업데이트하거나 일시적으로 선택적 필드가 필요할 때 사용합니다.

예시

type User = { id: number; name: string; age: number };
let userUpdate: Partial = { name: "Alice" };
// userUpdate only needs to provide any subset of User's fields

Readonly

목적

타입의 모든 속성을 불변으로 만듭니다.

사용 시점

객체가 생성된 뒤 속성이 변경되는 것을 방지하고 싶을 때 사용합니다.

예시

type Config = { apiKey: string; timeout: number };
const config: Readonly = { apiKey: "123", timeout: 500 };
// config.apiKey = "456"; // Error: cannot assign to 'apiKey' because it is a read-only property

Pick

목적

다른 타입에서 특정 속성 집합을 골라 새로운 타입을 구성합니다.

사용 시점

객체의 일부 속성만 필요할 때 사용합니다.

예시

type User = { id: number; name: string; age: number };
type UsernameOnly = Pick;
// UsernameOnly is { name: string }

Record

목적

Keys 집합을 속성으로, 각 속성의 타입을 Type으로 하는 타입을 만듭니다.

사용 시점

키를 일정한 타입의 값에 매핑해야 할 때, 예를 들어 사전이나 조회 테이블을 만들 때 사용합니다.

예시

type ErrorMessages = Record;
const errors: ErrorMessages = {
  "404": "Not Found",
  "500": "Server Error"
};

빠른 참고

유틸리티사용 사례
Partial선택적 업데이트 객체
Readonly생성 후 변형 방지
Pick타입에서 일부 필드 선택
Record타입이 지정된 값으로 이루어진 사전

이러한 유틸리티 타입을 마스터하면 더 깔끔하고 유연하며 타입‑안전한 TypeScript 코드를 작성할 수 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »