[Typescript] 08. 인덱스 서명
포스트
취소

[Typescript] 08. 인덱스 서명

Index Signature

아주 가끔 객체 안에 들어있는 속성들의 key를 특정짓지 못하는 경우가 있을 수 있다.
그런 경우 객체 속성의 key를 모르는 상태이기 때문에 Type 정의에도 지장이 생긴다. 이럴 경우에는 인덱스 서명 방식을 사용할 수 있다.

1
2
3
4
5
6
7
8
type Props = {
  [key: number]: string | boolean | Function,
};

const props: Props = {
    title: 'Hello world!',
    1: 'good', // Type '{ title: string; 1: string; }' is not assignable to type 'Props'. Object literal may only specify known properties, and 'title' does not exist in type 'Props'.(2322)
};

type을 정의할 때 정확히 어떤 key로 속성이 정의 될 지 확실하지가 않다면 key가 될 수 있는 type만을 기재하여 유동적으로 객체를 확장할 수 있다.

반드시 Index Signatures의 속성은 string 혹은 ```number``여야 한다.

주의할 점

```typescript type Props = { [key: string]: string | boolean | Function, type: string, // OK index: number, // Property ‘index’ of type ‘number’ is not assignable to ‘string’ index type ‘string | boolean | Function’.(2411) };

const props: Props = { index: 1, }; Index Signatures를 사용하면 반드시 나머지 속성들도Index Signatures```의 유형을 따라야 한다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.