angular - 接口打字稿内的接口
问题描述
我是 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 是未定义的,如何解决这个问题!。
谢谢!
解决方案
创建对象实例时,语法为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'
}]
}];
推荐阅读
- java - 更新到版本 3.1.2 后的 Android Studio 编译问题
- python - Python numpy 索引混乱
- css - Visual Studio 2015 - Bootstrap CSS 停止在 Chrome 上工作
- google-cloud-composer - 如何在 Google Cloud Composer 中更新 DAG
- sql - ms sql 找到 unicode 0
- python - 使用 sqlalchemy_utils ChoiceType 在 Flask 中迁移和升级时出错
- python - Visual Studio 代码:智能感知不起作用
- markdown - 电报消息(来自机器人或手动)如何避免数字成为移动设备上的链接?
- azure-iot-hub - IOT Edge V2 - 在边缘设备上部署和调试 Python
- laravel-5.5 - laravel5.5 中具有特定角色用户的多重身份验证