Как валидно описать массив обьектов?
Приветсвую, я получаю через Апи некую информацию и хочу через интерфейс описать типы данных но столкнулся с трудностью их описания.. Пример того что я получаю:
{
"page": 1,
"results": [
{
"adult": false,
"backdrop_path": "/p1F51Lvj3sMopG948F5HsBbl43C.jpg",
"genre_ids": [28, 12, 14],
"id": 616037,
"original_language": "en",
"original_title": "Thor: Love and Thunder",
"overview": "After his retirement is interrupted by Gorr the God Butcher, a galactic killer who seeks the extinction of the gods, Thor enlists the help of King Valkyrie, Korg, and ex-girlfriend Jane Foster, who now inexplicably wields Mjolnir as the Mighty Thor. Together they embark upon a harrowing cosmic adventure to uncover the mystery of the God Butcher’s vengeance and stop him before it’s too late.",
"popularity": 10993.015,
"poster_path": "/pIkRyD18kl4FhoCNQuWxWu5cBnM.jpg",
"release_date": "2022-07-06",
"title": "Thor: Love and Thunder",
"video": false,
"vote_average": 6.7,
"vote_count": 1657
},
Я начал делать вот так :
export interface FilmType{
page: number;
results: Array<any>{
}
}
Если делать через any то суть теряется..
Ответы (1 шт):
Автор решения: Sergey Glazirin
→ Ссылка
export interface FilmPage { // лучше описать как FilmPage, потому что это не фильм, а страница с фильмами
page: number;
results: Film[]; // интерфейс для фильмов вынести отдельно
}
export interface Film { // А это уже Film, использовать FilmType не стоит, потому что это интерфейс, а не тип (может ввести в заблуждение)
adult: boolean;
backdrop_path: string;
genre_ids: number[];
id: number;
original_language: string; // лучше такие вещи вынести в enum, чтобы не ошибиться в написании.
original_title: string;
overview: string;
popularity: number;
poster_path: string;
release_date: string; // тут может быть еще Date, в зависимости от формата данных
title: string;
video: boolean;
vote_average: number;
vote_count: number;
}