[英]How to declare a type inside class model?
我是angular2的新手。 所以,请忍受我。
到目前为止我尝试过的是:
export class Navbar {
name: string;
submenu: {
name: string;
}
}
再说一次:我尝试了数组和[]
export class Navbar {
name: string;
submenu: array;
}
这是没有子菜单声明的代码。
export class Navbar {
name: string;
}
const NAVBAR: Navbar[] = [
{ name: 'Company Data' },
{ name: 'Client Data',
submenu: [
{ name: 'Balance' },
{ name: 'Settlement' }
]
},
{ name: 'Bookie Data' },
{ name: 'Bank Data' },
{ name: 'Journal Entry' },
{ name: 'Journal Bank' },
{ name: 'Report',
submenu: [
{ name: 'General Ledger' },
{ name: 'Trial Balance' },
{ name: 'Profit/Loss' },
{ name: 'Balance Sheet' }
]
},
{ name: 'Control' },
{ name: 'Input',
submenu: [
{ name: 'Company' },
{ name: 'Client' },
{ name: 'Bookie' },
{ name: 'Master' },
{ name: 'Client Agent' },
{ name: 'Bookie Balance' },
{ name: 'Import Client Data' },
{ name: 'Chart Of Account' },
{ name: 'Bank' },
{ name: 'Bank Company' }
]
}
]
这是角度引发的误差。
app/app.component.ts(10,5): error TS2322: Type '({ name: string; } | { name: string; submenu: { name: string; }[]; })[]' is not assignable to type 'Navbar[]'.
Type '{ name: string; } | { name: string; submenu: { name: string; }[]; }' is not assignable to type 'Navbar'.
Type '{ name: string; submenu: { name: string; }[]; }' is not assignable to type 'Navbar'.
Object literal may only specify known properties, and 'submenu' does not exist in type 'Navbar'.
任何帮助对我来说意义非凡。 谢谢!
有几件事您将需要更改...首先,我建议您使用interface
或type
而不是class
因为您不会在任何地方调用new
。
另一件事是,通过具有submenu: array
它不是可选的,因此在每个实例上都不会出现这种情况(树需要停在某处)。 您可以使用?
来表示?
这将为您提供如下界面:
export interface Navbar {
name: string;
submenus?: Navbar[];
}
这将使它起作用:
const navbars: Navbar[] = [
{ name: 'Company Data' },
{ name: 'Client Data',
submenus: [
{ name: 'Balance' },
{ name: 'Settlement' }
]
}
];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.