Почему TypeScript не ругается на ошибку?

Изучаю TS. Есть компонент с таким кодом:

function Search() {
  const [input, setInput] = useState<number | string>('');
  const dispatch = useDispatch();

  function handleChange(e: React.ChangeEvent<HTMLInputElement>) {
    setInput(e.target.value);
  }

  function handleSubmit(e: React.FormEvent<HTMLFormElement>) {
    e.preventDefault();

    searchMovie(input)
      .then((movies: Movies) => {
        console.log('movies:', movies)
        dispatch(searchAction(movies));
      })
      .catch((err) => console.log(err))

Есть такой интерфейс:

export interface Movies {
  films: string[]
}

Почему в компоненте в функции searchMovie TS не ругается на movies: Movies? Фактические в movies попадает объект с нужным мне ключом films.

Функция searchMovie

import { BASE_URL } from '../utils/constants';

function searchMovie(keyword) {
  return fetch(`${BASE_URL}/search-by-keyword?keyword=${keyword}`, {
    method: 'GET',
    headers: {
      'X-API-KEY': '6f26fa-08c4-47vv-90cb-cb534e2732b4',
    },
  }).then((res) => {
    if (res.ok) {
      return res.json();
    }
    return Promise.reject('Ошибка с фронта');
  });
}

export { searchMovie };

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


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