Почему 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 };
