В чем ошибка типизации?
Пишу проект с использованием тайпскрипта, получаю данные через АПИ (приходят обьекты с данными о разных фильмах). Данные приходящие с апи удалось типизировать и все работает хорошо но мне понадобилось создать переменную в которую я получаю рандомный фильм и когда пытаюсь эту переменную типизировать ловлю ошибки, можно ей дать тип any но меня это не устраивает. Код и обьекты:
const [films, setFilms] = useState<IFilm[]>([]);//Здесь получаю данные с апи
const film: any = films[Math.floor(Math.random() * films.length)]; // Здесь выбираю рандомный фильм из всех но типизировать его как IData не получается
React.useEffect(() => {
try {
axios.get(requests.requestPopular).then((res) => {
setFilms(res.data.results);
});
} catch (e) {
console.log("Error:", e);
}
}, []);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
Выведу в консоль данные о переменных, в первом случае получаю масив данных, во втором получаю обьект.
console.log(films);//Получаю определенное количество обьектов
{
"adult": false,
"backdrop_path": "/faXT8V80JRhnArTAeYXz0Eutpv9.jpg",
"genre_ids": [
16,
28,
12,
35,
10751,
14
],
"id": 315162,
"original_language": "en",
"original_title": "Puss in Boots: The Last Wish",
"overview": "Puss in Boots discovers that his passion for adventure has taken its toll: He has burned through eight of his nine lives, leaving him with only one life left. Puss sets out on an epic journey to find the mythical Last Wish and restore his nine lives.",
"popularity": 5032.178,
"poster_path": "/kuf6dutpsT0vSVehic3EZIqkOBt.jpg",
"release_date": "2022-12-07",
"title": "Puss in Boots: The Last Wish",
"video": false,
"vote_average": 8.6,
"vote_count": 3032
}
console.log(film);// получаю обьект в консоли
{
"adult": false,
"backdrop_path": "/faXT8V80JRhnArTAeYXz0Eutpv9.jpg",
"genre_ids": [
16,
28,
12,
35,
10751,
14
],
"id": 315162,
"original_language": "en",
"original_title": "Puss in Boots: The Last Wish",
"overview": "Puss in Boots discovers that his passion for adventure has taken its toll: He has burned through eight of his nine lives, leaving him with only one life left. Puss sets out on an epic journey to find the mythical Last Wish and restore his nine lives.",
"popularity": 5032.178,
"poster_path": "/kuf6dutpsT0vSVehic3EZIqkOBt.jpg",
"release_date": "2022-12-07",
"title": "Puss in Boots: The Last Wish",
"video": false,
"vote_average": 8.6,
"vote_count": 3032
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
Вот моя типизация:
export interface IFilm {
page: number;
results: Result[];
total_pages: number;
total_results: number;
}
export interface Result {
adult: boolean;
backdrop_path: string;
genre_ids: number[];
id: number;
original_language: string;
original_title: string;
overview: string;
popularity: number;
poster_path: string;
release_date: string;
title: string;
video: boolean;
vote_average: number;
vote_count: number;
}
Если я типизирую film:IFilm то получаю ошибку при выведении данных в теги: "Property 'release_date' does not exist on type 'IFilm'." Как это исправить ?