我想在Angular应用中创建界面,我具有以下对象结构
productGroups: IProduct[] =
[
{
num:1,
productlist:[
{
letter:"A",
products:[
'Aprod1',
'Aprod2'
]
},
{
letter:"B",
products:[
'Bprod3',
'Bprod4'
]
}
]
},
{
num:2,
productlist:[
{
letter:"A",
products:[
'prod1',
'prod2'
]
}
]
}
]
我尝试过的是
export interface IProduct {
num : number;
letter : string;
products : string[];
productlist : any[];//comprise array of letter and products
}
我是否正确定义了接口???我遇到错误 { “ owner”:“打字稿”, “ code”:“ 2739”, “严重程度”:8 “ message”:“类型'{num:string; productlist:{字母:string; products:string [];} [];}'是 在“产品”类型中缺少以下属性:字母,产品”, }
答案 0 :(得分:1)
您的界面比对象的结构更扁平('letter'属性嵌套在示例对象的products
内,但位于接口定义的最顶层)。更像是这样:
interface IProductListEntry {
letter: string;
products: string[];
}
interface IProduct {
num : number;
productlist : IProductListEntry[];
}
答案 1 :(得分:1)
您的ProductList界面错误,因为您的产品列表不是string[]
,因此以下操作应该有效
export interface IProduct {
num : number;
productlist : IProductList[];
}
export interface IProductList {
letter : string;
products : string[];
}