Как типизировать item в map React при рендинге компонентов

Интерфейс

export interface IMovie {
  nameRu: string;
  rating: number;
  posterUrlPreview: string;
  year: number
  filmId: number;
  [key: string]: any;
}

Компонент

import { useTypedSelector } from '../../hooks/useTypedSelector';
import { IMovie, IMoviesState } from '../../types/movies';
import MovieCard from '../MovieCard/MovieCard';
import styles from './styles.module.css';

const MoviesList: React.FC = () => {
  const moviesList = useTypedSelector((state) => state.movies.movies);
  console.log('moviesList:', moviesList)

  return (
    <ul className={styles.list}>
      {moviesList.map((movie: IMovie) => (

        <li key={movie.filmId} className={styles.listItem}>
          <MovieCard
            nameRu={movie.nameRu}
            rating={movie.rating}
            posterUrlPreview={movie.posterUrlPreview}
            type={movie.type}
            year={movie.year}
          />
        </li>
      ))}
    </ul>
  );
};

export default MoviesList;

TypeScript ругается на movie в map при рендинге компонетов. Почему? В movie попадает объект описанный в интерфейсе

введите сюда описание изображения

Это объект который попадает в movie введите сюда описание изображения

Хук

import { TypedUseSelectorHook, useSelector } from "react-redux";
import { rootState } from "../store";

export const useTypedSelector: TypedUseSelectorHook<rootState> = useSelector;

Стор

const rootReducer = combineReducers({
  movies: moviesReducer,
  loader: handleLoader,
});

export const store = createStore(rootReducer, applyMiddleware(thunk));

export type rootState = ReturnType<typeof rootReducer>

Ответы (0 шт):