#angular #typescript
#угловой #typescript
Вопрос:
Я новичок в angular и перехожу с Java, поэтому я привык настраивать class в качестве структур данных для своих данных. После некоторых исследований я узнал, что должен использовать интерфейсы, но у меня проблема с выяснением того, как я могу настроить интерфейс с вложенными массивами. Каждый из массивов — это просто пары поле / заголовок для создания таблицы. Объект будет представлять собой их массив. Но у меня есть две таблицы, которые будут иметь заголовок в две строки, и я пытаюсь выяснить, как структурировать интерфейс.
interface TableHeaderDetails {
field: string;
header: string;
date?: <what goes here>;
}
forecastCol: TableHeaderDetails[];
this.forecastCol = [
{ field: 'cumulativeExpected', header: 'Cumulative Expected ' },
{ field: 'cumulativeReceived', header: 'Cumulative Received' },
{ date : [
{ field: 'forecastYearMonth', header: 'Year - Month' },
{ details: [
{ field: 'expected', header: 'Expected' },
{ field: 'received', header: 'Received' }
]}
]}
];
Комментарии:
1. Какие подробности в вашем
this.forecastCol
2. Пожалуйста, добавьте, как бы вы набрали это на Java. Структура типа данных неясна.
Ответ №1:
Вы можете использовать вспомогательный сайт json2ts для преобразования вашего объекта JSON в интерфейс, который выглядит следующим образом,
declare module namespace {
export interface Detail {
field: string;
header: string;
}
export interface Date {
field: string;
header: string;
details: Detail[];
}
export interface RootObject {
field: string;
header: string;
date: Date[];
}
}
Комментарии:
1. Спасибо за ссылку, которая очень поможет. Это было ночное упражнение по кодированию, и я понял, что мне нужно создать более многоуровневый объект вместо того, чтобы пытаться использовать базовый объект для всех частей.