为通用json定义typescript接口



我有下面的json,其中carModels包含下面的格式。如何定义接口?

{
"name": "name",
"version": 1.0,
"cars": [{
"id": 1,
"carModelID": "1"
}],
"carModels": {
"1": {
"id": 1,
"name": "Tesla"
},
"2": {
"id": 2,
"name": "Benz"
}
}
}

我使用在线生成器获得了以下界面。如何在下面的接口中进行泛化,使CarModel接口可以取任何值作为键?

export interface Root {
name: string
version: number
cars: Car[]
carModels: CarModels
}
export interface Car {
id: number
carModelID: string
}
export interface CarModels {
"1": N1
"2": N2
}
export interface N1 {
id: number
name: string
}
export interface N2 {
id: number
name: string
}

问题

CarModels的上界面定义了N1N2。。。。如何将CarModels接口推广到任何类型?

您应该为CarModel编写一个接口,然后为包含结构使用一个索引类型:

interface CarModel {
id: number;
name: string;
}
interface CarModels {
[key: string]: CarModel;
}

最新更新