Angularjs Typescript-如何为json对象创建嵌套接口
我正在尝试创建已为其创建接口的嵌套json对象。由于Angularjs Typescript-如何为json对象创建嵌套接口,angularjs,json,typescript,interface,angular6,Angularjs,Json,Typescript,Interface,Angular6,我正在尝试创建已为其创建接口的嵌套json对象。由于属性类型serservicesAndHeads不兼容,并且说属性缺失,因此出现错误。我的界面如下: interface Head { HeadNumber?: string; HeadDescription?: string; }; interface ServicesAndHead { majorService?: string; subMajorService?: string; s
属性类型serservicesAndHeads不兼容,并且说属性缺失,因此出现错误。我的界面如下:
interface Head {
HeadNumber?: string;
HeadDescription?: string;
};
interface ServicesAndHead {
majorService?: string;
subMajorService?: string;
servicesAndHeads:Head[];
}
export interface MyTableItem {
demandNo?: string;
demandName?: string;
servicesAndHeads?:ServicesAndHead;
//servicesAndHeads?:ServicesAndHead[];
}
interface Head {
majorHeadNumber?: string;
majorHeadDescription?: string;
};
我的json如下所示:
const dataItem: MyTableItem =
{
demandNo: 'Demand Number 2',
demandName: 'Animal Husbandary, Livestock, Fisheries and Veterinary Services',
servicesAndHeads: [
{
majorService: 'C-Economic Service',
subMajorService: '(a) Agriculture and Allied Activities',
majorHead: [
{ majorHeadNumber: '3098', majorHeadDescription: 'Animal Husbandry' },
{ majorHeadNumber: '3999', majorHeadDescription: 'Diary Development' },
{ majorHeadNumber: '4902', majorHeadDescription: 'Fisheries' }
]
},
{
majorService: 'C- Capital Account of Economic Services',
subMajorService: '(a) Capital Account of Agriculture and Allied Activities',
majorHead: [
{ majorHeadNumber: '0012', majorHeadDescription: 'Capital Outlay on Animal ' },
{ majorHeadNumber: '3245', majorHeadDescription: 'Capital Outlay on Fisheries' }
]
}
]
}
我也尝试过将其用于serviceAndHead的嵌套
servicesAndHeads?: {
[key: string]:ServicesAndHead,
majorHeads?: {
[key: string]:MajorHead
};
};
我将如何修改代码以接受上述json。定义接口如下:
interface Head {
majorHeadNumber?: string;
majorHeadDescription?: string;
};
interface ServicesAndHead {
majorService?: string;
subMajorService?: string;
majorHead: Head[];
}
export interface MyTableItem {
demandNo?: string;
demandName?: string;
servicesAndHeads?:ServicesAndHead[];
}
这将与您的Json对象兼容
const dataItem: MyTableItem = {
demandNo: 'Demand Number 2',
demandName: 'Animal Husbandary, Livestock, Fisheries and Veterinary Services',
servicesAndHeads: [
{
majorService: 'C-Economic Service',
subMajorService: '(a) Agriculture and Allied Activities',
majorHead: [
{
majorHeadNumber: '3098',
majorHeadDescription: 'Animal Husbandry'
},
{
majorHeadNumber: '3999',
majorHeadDescription: 'Diary Development'
},
{
majorHeadNumber: '4902',
majorHeadDescription: 'Fisheries'
}]
},
{
majorService: 'C- Capital Account of Economic Services',
subMajorService: '(a) Capital Account of Agriculture and Allied Activities',
majorHead: [
{
majorHeadNumber: '0012',
majorHeadDescription: 'Capital Outlay on Animal '
},
{
majorHeadNumber: '3245',
majorHeadDescription: 'Capital Outlay on Fisheries'
}]
}]
}
定义接口如下:
interface Head {
majorHeadNumber?: string;
majorHeadDescription?: string;
};
interface ServicesAndHead {
majorService?: string;
subMajorService?: string;
majorHead: Head[];
}
export interface MyTableItem {
demandNo?: string;
demandName?: string;
servicesAndHeads?:ServicesAndHead[];
}
这将与您的Json对象兼容
const dataItem: MyTableItem = {
demandNo: 'Demand Number 2',
demandName: 'Animal Husbandary, Livestock, Fisheries and Veterinary Services',
servicesAndHeads: [
{
majorService: 'C-Economic Service',
subMajorService: '(a) Agriculture and Allied Activities',
majorHead: [
{
majorHeadNumber: '3098',
majorHeadDescription: 'Animal Husbandry'
},
{
majorHeadNumber: '3999',
majorHeadDescription: 'Diary Development'
},
{
majorHeadNumber: '4902',
majorHeadDescription: 'Fisheries'
}]
},
{
majorService: 'C- Capital Account of Economic Services',
subMajorService: '(a) Capital Account of Agriculture and Allied Activities',
majorHead: [
{
majorHeadNumber: '0012',
majorHeadDescription: 'Capital Outlay on Animal '
},
{
majorHeadNumber: '3245',
majorHeadDescription: 'Capital Outlay on Fisheries'
}]
}]
}
ServicesAndHead
接口将servicesAndHeads
属性定义为必需属性,但这两个属性都是dataItem。servicesAndHeads
的数组元素缺少此属性。它们以majorHead
属性为特征。也许,你的意思是
interface ServicesAndHead {
majorService?: string;
subMajorService?: string;
majorHead: Head[];
}
如果是这样,您还需要调整头部
界面,如下所示:
interface Head {
HeadNumber?: string;
HeadDescription?: string;
};
interface ServicesAndHead {
majorService?: string;
subMajorService?: string;
servicesAndHeads:Head[];
}
export interface MyTableItem {
demandNo?: string;
demandName?: string;
servicesAndHeads?:ServicesAndHead;
//servicesAndHeads?:ServicesAndHead[];
}
interface Head {
majorHeadNumber?: string;
majorHeadDescription?: string;
};
ServicesAndHead
接口将servicesAndHeads
属性定义为必需属性,但这两个属性都是dataItem。servicesAndHeads
的数组元素缺少此属性。它们以majorHead
属性为特征。也许,你的意思是
interface ServicesAndHead {
majorService?: string;
subMajorService?: string;
majorHead: Head[];
}
如果是这样,您还需要调整头部
界面,如下所示:
interface Head {
HeadNumber?: string;
HeadDescription?: string;
};
interface ServicesAndHead {
majorService?: string;
subMajorService?: string;
servicesAndHeads:Head[];
}
export interface MyTableItem {
demandNo?: string;
demandName?: string;
servicesAndHeads?:ServicesAndHead;
//servicesAndHeads?:ServicesAndHead[];
}
interface Head {
majorHeadNumber?: string;
majorHeadDescription?: string;
};