다음과 같이 구문 분석하는 JSON 페이로드가 있다고 가정합니다.
{
name: "test",
items: {
"a": {
id: 1,
size: 10
},
"b": {
id: 2,
size: 34
}
}
}
항목 속성의 값이 키가 문자열이고 해당 값이 Item 인터페이스에 의해 정의 된 객체임을 모델링하기 위해 Example 인터페이스의 정의를 어떻게 설정합니까?
export interface Example {
name: string;
items: ???;
}
export interface Item {
id: number;
size: number;
}
답변
Typescript를 사용하면 구문을 사용하여 객체 키 유형을 추가 할 수 있습니다 [key: string]
.
문서에 명시된대로이를 색인 생성 가능한 유형 이라고 합니다 .
인덱싱 가능한 형식에는 인덱싱 할 때 해당 반환 형식과 함께 개체에 인덱싱하는 데 사용할 수있는 형식을 설명하는 인덱스 서명이 있습니다.
귀하의 경우 다음을 사용합니다.
export interface Item {
id: number;
size: number;
}
export interface Example {
name: string;
items: {
[key: string]: Item
};
}
참고로 여기 에 라이브 예제 링크가 있습니다 .