Я вызываю HTTP-запрос и набираю полученный ответ на требуемый тип с использованием интерфейса в службе.HTTP-ответ - это объект JSON с некоторой парой ключей-значений.Я подписался на эту услугу в компоненте.Когда я консоль регистрирую ответ, полученный в функции подписки, он отлично регистрирует объект с парой ключ-значение.Но когда я назначаю этот объект члену класса компонента, он, кажется, не соответствует типу требуемого интерфейса.Потому что, когда я использую переменные ключи члена класса в компоненте html, я получаю сообщение об ошибке - «Не удается прочитать свойство« X »из неопределенного» * 1001 *
Вот фрагменты кода -
Интерфейс
export interface NewsItem {
status: string;
totalResults: number;
articles: any[];
}
Служба
export class NewsService {
constructor(private http: HttpClient) {}
getCategoryNews(): Observable<NewsItem>{
return this.http.get<NewsItem>(newsUrl);
}
}
component.ts
export class NewsContainerComponent implements OnInit {
newsData: NewsItem;
constructor(private _newsService: NewsService) {}
ngOnInit() {
this._newsService.getCategoryNews().subscribe(
(response) => {
this.newsData = response;
console.log(this.newsData);
},
(err) => {
console.error(err);
}
)
}
}
component.html
<div *ngFor="let item of newsData.articles">
{{item.description}}
</div>
Фактический ответ от HTTP-запроса выглядит следующим образом
{
"status":"ok",
"totalResults":2,
"articles":[
{
"source":{
"id":"google-news-au",
"name":"Google News (Australia)"
},
"title":"Former Malaysian PM questioned on graft",
"description":"Former Malaysian Prime Minister Najib Razak could face criminal charges after being questioned over a corruption scandal."
},
{
"source":{
"id":"the-guardian-uk",
"name":"The Guardian (UK)"
},
"title":"Manchester Arena attack: thousands to mark anniversary",
"description":"Series of events across city including a mass singalong are being held one year on from terrorist attack",
}
]
}
В случае кода выше, я получаю сообщение об ошибке - «Невозможно прочитать свойство« статьи »неопределенного».Почему я получаю эту ошибку даже при приведении типа ответа HTTP с интерфейсом?