[Typescript] 인덱스드 엑세스 타입

Bam·2023년 9월 10일
0

Typescript

목록 보기
31/32
post-thumbnail

인덱스드 엑세스 타입 Indexed Access Types

인덱스드 엑세스 타입(Indexed Access Types)인덱스[]를 사용해서 객체, 배열, 튜플의 특정 프로퍼티 타입을 추출하는 타입입니다.

객체에서의 인덱스드 엑세스 타입

인덱스로 객체의 프로퍼티 명을 사용하면 간단하게 객체 타입에 접근할 수 있습니다.

type Member = {
  id: number,
  name: string,
};

type Id = Member['id']; //type Id = number;
type Name = Member['name']; //type Name = string;
type Union = Member['id' | 'name']; //type Union = number | string;

배열에서의 인덱스드 엑세스 타입

배열에서는 typeof 연산자와 함께 사용하면 배열 요소의 타입을 가져올 수 있습니다. 이때는 number 타입을 이용해서 배열 요소 타입을 가져오게 됩니다.

let arr = [
  {id: 1, name: 'Kim'},
  {id: 2, name: 'Lee'},
  {id: 3, name: 'Park'}
];

type Id = typeof arr[number]['id']; //type Id = number;
type Name = typeof arr[number]['name'] //type Name = string;
type Arr = typeof arr[number]; //type Arr = {id: number, name: string};

튜플에서의 인덱스드 엑세스 타입

튜플도 배열과 비슷한 방식으로 인덱스를 통해 튜플 요소 타입에 접근합니다.

type Tuple = [number, string];

type T1 = Tuple[0]; //type T1 = number;
type T2 = Tuple[1]; //type T2 = string;
type T3 = Tuple[number]; //type T3 = number | string;

0개의 댓글