인덱스드 엑세스 타입
인덱스드 엑세스 타입(Indexed Access Types)
인덱스드 엑세스 타입은 다른 타입의 특정 속성이 가지는 타입을 조회하기 위해 사용됩니다. 인덱스에 사용되는 타입 또한 그 자체로 타입이기 때문에 유니온 타입, keyof, 타입 별칭 등의 표현을 사용할 수 있습니다.
type User = {
name: string;
age: number;
};
type IndexedAccessName = User['name']; // string
type IndexedAccessAge = User['age']; // number
type Key = 'name' | 'age';
type IndexedAccess = User[Key]; //string | number
배열의 요소 타입을 조회하기 위해 인덱스드 엑세스 타입을 사용할 수 있습니다. 배열 타입의 모든 요소가 전부 동일한 타입을 가지고 배열의 인덱스는 숫자 타입입니다. 즉 number
로 인덱싱 해서 배열 요소를 얻고 typeof 연산자를 통해 타입을 가지고 올 수 있습니다.
type User = {
name: string;
age: number;
};
type Element<T> = T extends unknown[] ? T[number] : never;
type UserInfo = Element<User[]>;
Content Table
- 인덱스드 엑세스 타입(Indexed Access Types)