我是angular的新手,我试图通过接口类产生一些结果。
export interface Header {
parentTitles: string;
childHeaders: ChildHeader[];
titleIcon: string;
url: string;
}
export interface ChildHeader {
childTitles: string;
siblingHeaders: SiblingHeader[];
icon: string;
url: string;
}
export interface SiblingHeader {
siblingTitles: string[];
icon: string;
url: string;
}
在comp.ts文件上
headers: Header = [
{
parentTitles: 'Settings',
childHeaders: ChildHeader = [{
childTitles: 'General Setup',
siblingHeaders: SiblingHeader = [{
siblingTitles: ['Vessel', 'Port', 'Owner', 'Engine Type',
'Vessel Type'],
icon: '',
url: ''
}],
icon: '',
url: 'home/general-setup'
}]
}
];
因此未定义ChildHeader和SiblingHeader,如何解决此问题!。
谢谢!
答案 0 :(得分:1)
创建对象实例时,语法为propertName: value
。您不能将类型用作值。您得到的错误是,例如SiblingHeader
被用作值,但它不是值,而是一种类型。
但是,由于您已经拥有header: Header
,因此您已经将header
对象声明为标头,这意味着它的childHeaders
属性已经是ChildHeader
的数组,它们本身是具有siblingHeaders
属性的对象数组,是SiblingHeader
的数组。也就是说,您不需要属性在对象文字中具有类型,因为它们是从对象本身的类型派生的。
const headers: Header[] = [{
parentTitles: 'Settings',
childHeaders: [{
childTitles: 'General Setup',
siblingHeaders: [{
siblingTitles: ['Vessel', 'Port', 'Owner', 'Engine Type', 'Vessel Type'],
icon: '',
url: ''
}],
icon: '',
url: 'home/general-setup'
}]
}];