Как создать интерфейс для объекта и массива объектов в Angular 8 и набрать скрипт? - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь создать интерфейс для объекта, объектов и массива объектов.

Пример интерфейса

export interface ErateColumn {
  categories:{
    [key:string]:column[]
  }
}

interface column {
  label:string
  value:string
}

Пример ответа API, подобный этому

{
"categories": {
    "Basic Information": [
        { label: "Applicant Type", value: "ApplicantType" },
        { label: "Organization Name", value: "OrganizationName" },
    ],
    "FRN Lineitem": [
        { label: "Monthly_Cost", value: "Monthly_Cost" },
        ],
    "FRN status": [
        { label: "Purpose Type", value: "PurposeType" },

    ]
}
}

enter image description here

Ответы [ 3 ]

1 голос
/ 20 февраля 2020

То, что вы указали в методе this._erateColumn.next(columnList), равно columnList. И почему-то columnList кажется единственным объектом интерфейса ErateColumn, в то время как ваш BehaviorSubject имеет массив типов ErateColumn. Измените его на ErateColumn или предоставьте массив в методе this._erateColumn.next(columnList), чтобы ваш код работал.

РЕДАКТИРОВАТЬ

Согласно вашему новому скриншоту, в нем указано свойство categories отсутствует, поэтому либо сделайте его необязательным, например:

export interface ErateColumn {
  categories?:{
    [key:string]:column[]
  }
}

interface column {
  label:string
  value:string
}

, либо укажите категории.

0 голосов
/ 20 февраля 2020

Надеюсь, это поможет ...

interface User {
   name: string;
   phone: string;
}

const user: User ==> Object

const usersList: User[] ===> Array of Objects
0 голосов
/ 20 февраля 2020

Может быть, этот подход может кому-то помочь

Вы можете преобразовать JSON в класс или интерфейс для машинописного текста *, Используя онлайн-инструмент json2ts или если вы используете против кода (Visual Studio) используйте это расширение QuickType - Вставьте JSON как код

Примечание: Ваш JSON должен быть действительным JSON, иначе вы получите ошибки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...