我是 Angular 的新手,我试图用接口(interface)类产生一些结果。
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 是未定义的,如何解决这个问题!
谢谢!
最佳答案
创建对象实例时,语法为propertName: value
。您不能将类型用作值。你得到的错误是,例如 SiblingHeader
被用作一个值,但它不是一个值——它是一个类型。
但是,由于您已经有了 header: Header
,您已经将 header
对象声明为 header ,这意味着它的 childHeaders
property 已经是一个 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'
}]
}];
关于angular - Interface typescript 中的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52260758/