상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 타입스크립트에서 Record 타입은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
TypeScript에서 `Record` 타입은 특정 키와 값의 쌍을 정의하는 유틸리티 타입입니다. 이 타입은 객체의 구조를 정의할 때 유용하게 사용되며, 특히 동적으로 생성된 객체의 타입을 명확하게 지정할 수 있도록 도와줍니다. 기본 구조 `Record` 타입은 두 개의 제네릭 타입 매개변수를 받습니다: 1. K : 객체의 키 타입을 정의합니다. 이 타입은 문자열 리터럴, 숫자 리터럴, 또는 심볼 타입일 수 있습니다. 2. T : 객체의 값 타입을 정의합니다. 이 타입은 어떤 타입이든 될 수 있습니다. `Record<K, T>`의 구조는 다음과 같습니다: ```typescript type Record<K extends keyof any, T> = { [P in K]: T; }; ``` 이 구조는 `K`에 정의된 모든 키에 대해 `T` 타입의 값을 가지는 객체를 생성합니다. 사용 예시 1. 기본 사용법 : ```typescript type <a href='https://sangseek.com/sangseeks/U/ko'>U</a>ser = { id: number; name: string; }; type UserRecord = Record<string, User>; const users: UserRecord = { user1: { id: 1, name: "Alice" }, user2: { id: 2, name: "Bob" }, }; ``` 위의 예시에서 `UserRecord`는 문자열 키를 가지며, 각 키에 대해 `User` 타입의 값을 가지는 객체를 정의합니다. 2. 리터럴 타입 사용 : ```typescript type Role = 'admin' | 'user' | 'guest'; type Permissions = Record<Role, boolean>; const permissions: Permissions = { admin: true, user: false, guest: false, }; ``` 여기서 `Permissions` 타입은 `Role` 타입의 각 리터럴에 대해 `boolean` 값을 가지는 객체를 정의합니다. 3. 동적 키 사용 : `Record` 타입은 동적으로 생성된 키를 사용할 때도 유용합니다. ```typescript const keys = ['name', 'age', 'email'] as const; type UserKeys = typeof keys[number]; // 'name' | 'age' | 'email' type UserInfo = Record<UserKeys, string>; const userInfo: UserInfo = { name: "Charlie", age: "30", email: "charlie@example.com", }; ``` 위의 예시에서 `UserKeys`는 `keys` 배열의 각 요소를 타입으로 가지며, `UserInfo`는 이 키들에 대해 `string` 값을 가지는 객체를 정의합니다. 장점 - 타입 안전성 : `Record`를 사용하면 객체의 키와 값의 타입을 명확하게 정의할 수 있어, 타입 안전성을 높일 수 있습니다. - 유연성 : 다양한 형태의 객체를 쉽게 정의할 수 있으며, 동적 키를 사용할 때도 유용합니다. - 가독성 : 코드의 가독성을 높여주며, 객체의 구조를 명확하게 표현할 수 있습니다. 결론 TypeScript의 `Record` 타입은 객체의 키와 값의 타입을 정의하는 데 매우 유용한 도구입니다. 이를 통해 코드의 타입 안전성을 높이고, 가독성을 개선하며, 다양한 형태의 객체를 쉽게 다룰 수 있습니다. `Record`를 적절히 활용하면 TypeScript의 강력한 <a href='https://sangseek.com/sangseeks/타입 시스템/ko'>타입 시스템</a>을 최대한 활용할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기