인덱스 시그니처에 대해

객체의 문자열 키 타입에 관계없이 유연하게 매핑하기

자바스크립트는 문자열 키를 타입에 관계없이 매핑한다.

const rocket = {
  name: 'Falcon 9',
  variant: 'Block 5',
  thrust: '7,607 kN',
}

타입스크립트에서도 인덱스 시그니처를 사용하여 유연하게 키와 값을 매핑할 수 있다.

type Rocket = { [property: string]: string }

const rocket: Rocket = {
    name: 'Falcon 9',
    variant: 'Block 5',
    thrust: '7,607 kN',
}

인덱스 시그니처

[property: string]: string이 바로 인덱스 시그니처이다. 여기에는 다음과 같은 세 가지 의미가 있다.

즉, 인덱스 시그니처를 사용하면 객체의 키와 값을 각각의 타입에 상관없이 매핑할 수 있다.

인덱스 시그니처의 단점

이렇듯 인덱스 시그니처는 객체가 유연하게 키와 값을 매핑할 수 있도록 해 주지만, 다음과 같은 단점이 있을 수 있다.