Will find a way

[Record] 타입 정의 (React 프로젝트를 하면서) 본문

Language/Typescript

[Record] 타입 정의 (React 프로젝트를 하면서)

Jaka_Park 2025. 5. 5. 16:12

들어가기 전

React 프로젝트 진행중 객체의 상태관리를 필요로 하던 중 Record라는 타입정의 하는 법을 알게 됐다.

오늘은 Record가 뭔지 간단하게 알아 보겠다.

 

 

Record란 무엇인가?

타입스크립트에서 객체의 타입을 정의할 때 자주 쓰이는 유틸리티 타입이다.

 

기본 문법

Record<Key's type, Value's type>
Key's type : 객체의 키 데이터 타입 / Value's type : 객체의 값의 데이터 타입

 

예시 1 (문자열 키에 불리언 값)

const checks: Record<string, boolean> = {
  age: true,
  terms: false,
  privacy: true,
};

// 다음과 같다
type Checks = {
  [key: string]: boolean;
}

 

예시 2 (특정 키들만 허용)

type TermKey = 'age' | 'terms' | 'privacy';

const checks: Record<TermKey, boolean> = {
  age: true,
  terms: false,
  privacy: true,
};

// "age", "terms", "privacy"만 키로 허용되고
// 값은 모두 boolean

 

쓰이는 곳

1) 동적으로 키를 처리해야 하는 객체 타입

2) reduce로 객체 누적할 때 초기 타입 설정

3) Map처럼 키-값 구조를 타입으로 선언하고 싶을 때