Доступ к вложенному объекту JSON в typescript

#arrays #json #typescript #api #typescript-typings

#массивы #json #typescript #API #typescript-типизации

Вопрос:

Я обращаюсь к API и получаю некоторые данные, такие как :

 const article = response.data;
const articleId = article.id;
const longTitle = article.items[1].objet.long_title;
const date = new Intl.DateTimeFormat('en-US').format(new Date(article.items[1].objet.date));
 

И когда я определил интерфейс TypeScript, такой как :

 interface Article {
    id: number;
    longTitle: string;
    date: Date;
}
 

И используйте его как :

 response => {
    const article: Article = response.data;
    const articleId = article.id;
    const longTitle = article.items[1].objet.long_title;
    const date = new Intl.DateTimeFormat('fr-FR').format(new Date(article.items[1].objet.date));
}
 

Я получаю сообщение об ошибке компиляции :
Свойство ‘items’ не существует для типа ‘Article’.ts(2339)

Как я могу получить данные без изменения интерфейса, есть ли какое-либо другое решение, пожалуйста?

Могу ли я достичь этого с помощью class-transformer?

класс-transfomer

С уважением

Комментарии:

1. (article as any).items будет работать, если вы не можете изменить interface Article

2. Если вы можете редактировать интерфейс статьи, разве вы не можете просто добавить массив «items» в качестве свойства? Например items: Item[] , и создайте интерфейс для типа элемента.