angular - Interface typescript 中的接口(interface)

标签 angular typescript

我是 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/

相关文章:

Angular --prod build 从编译的 CSS 中剥离 SVG 属性

javascript - Typescript 中的函数向量

javascript - 有人有将 NightWatch 与 TypeScript 一起使用的经验吗?

typescript - Angular 2 - 导入外部传单 typescript 库

Typescript TS2558错误以及keep<number>的含义

angular - 当 Angular 子元素引发事件时,如何从 DOM 中删除(而不是隐藏)它?

Angular6 将数据传递给 ng-template

typescript - 有没有办法检查字符串是否包含在 TypeScript 的联合类型中?

javascript - Angular 2 中出现 404 错误,即使后端 Nodejs url 在浏览器中输入时有效并显示来自 Oracle 的数据

angular - Ionic 2 - 模型驱动形式的设置值