#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?
С уважением
Комментарии:
1.
(article as any).items
будет работать, если вы не можете изменитьinterface Article
2. Если вы можете редактировать интерфейс статьи, разве вы не можете просто добавить массив «items» в качестве свойства? Например
items: Item[]
, и создайте интерфейс для типа элемента.