TypeScript - Indexed Access Types

CH_Hwang·2022년 3월 17일
0

TypeScript

목록 보기
5/12

indexed access type은 다른 타입의 특정한 프로퍼티를 적용 시키는 타입이다.

type Person = { age: number; name: string; alive: boolean };
type Age = Person["age"];

console.log(typeof Age); // number

유니온 타입도 물론 가능하다

type Person = { age: number; name: string; alive: boolean };
type A1 = Person["age"| "name"];
type A2 = Person[keyof Person];

console.log(typeof A1); // number | string
console.log(typeof A2); // number | string | boolean

type AliveOrName = "alive" | "name";
type A3 = Person[AliveOrName];

console.log(typeof A3); // string | boolean

물론 없는 프로퍼티에 접근하면 에러가 난다.

number 를 사용해서 array elements의 타입을 얻을 수 있다.

const Array = [
  { name: 'bob', age: 21},
  { name: 'alice', age: 24},
]
type Person = typeof MyArray[number];

console.log(typeof Person) // {name:string; age:number;}

오직 indexing 타입만을 사용하고 싶을때 const를 사용해서 변수를 참조하면 안되고 type을 사용해라

0개의 댓글