타입스크립트에서 Record 타입은 무엇인가요?
_____A1: `Record` 타입은 타입스크립트 내장 제네릭 유틸리티 타입 중 하나로, 특정 키 집합을 가진 객체 타입을 정의할 때 사용합니다. `Record
---
Q2: `Record` 타입을 사용하는 기본 문법은 어떻게 되나요?
A2:
```typescript
Record
```
- `Keys`: 객체의 키가 될 타입 (보통 문자열 리터럴 또는 `string`/`number`/`symbol` 타입의 유니언)
- `Type`: 각 키의 값으로 지정할 타입
예:
```typescript
type Person = Record<'name' | 'age', string | number>;
```
---
Q3: `Record` 타입과 일반 객체 타입 선언과의 차이는 무엇인가요?
A3:
- 일반 객체 타입은 수동으로 각 키와 값을 명시
- `Record`는 키 집합과 값 타입을 간결하게 정의할 수 있어 코드 재사용성과 가독성 향상
예:
```typescript
type User = {
id: number;
name: string;
};
// Record로 작성하면
type UserRecord = Record<'id' | 'name', number | string>;
```
---
Q4: `Record`를 사용하면 어떤 장점이 있나요?
A4:
- 특정 키 집합에 대한 타입 안전 보장
- 코드가 간결해지고 재사용 가능
- 동적으로 키 타입 조합 생성 가능 (예: 유니언 타입 사용)
- 인터페이스 대신 간편하게 타입 생성 가능
---
Q5: 예제를 통해 `Record` 타입을 설명해주세요.
A5:
```typescript
type Roles = 'admin' | 'user' | 'guest';
type Permissions = Record
const userPermissions: Permissions = {
admin: false,
user: true,
guest: true,
};
```
이 예제는 `Roles` 키를 가진 객체를 정의하며, 각 키는 `boolean` 값을 갖습니다.
---
Q6: `Record
A6: 네, `Record
---
Q7: `Record` 타입으로 배열 타입을 정의할 수 있나요?
A7: `Record` 타입은 객체의 속성 타입을 정의할 때 사용하므로 배열은 직접 정의하지 않습니다. 배열 타입에는 `Array
---
Q8: `Record` 타입으로 숫자 키를 쓰려면 어떻게 하나요?
A8: 숫자 키를 사용하려면 키 타입에 `number`를 쓰면 됩니다.
예:
```typescript
type NumberKeyRecord = Record
const obj: NumberKeyRecord = {
1: "one",
2: "two",
};
```
---
Q9: `Record`는 언제 사용하면 좋나요?
A9:
- 객체 키가 명확하고 제한된 집합일 때
- 각 키가 동일한 타입을 가지는 객체를 표현할 때
- 유니언 타입으로 동적 키 집합을 만들고 싶을 때
---
Q10: `Record`와 맵 타입, 인덱스 시그니처의 차이점은 무엇인가요?
A10:
- 인덱스 시그니처 (`{ [key: string]: T }`)는 모든 문자열 키를 허용하고 동일한 값 타입을 가지지만, 키 집합이 제한되지 않음
- `Record`는 키 집합을 명확히 제한할 수 있어 타입 안정성이 높음
- 맵 타입(`Map
---
이상으로 타입스크립트에서 `Record` 타입의 정의, 사용법, 장점 등에 대한 FAQ였습니다.
작성자:
이수민 [비회원]
| 작성일자: 1년 전
2024-09-10 05:32:14
조회수: 161 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 161 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.