Почему я вижу ошибку"В типе "City[]" отсутствуют следующие свойства из типа "City""?
Возникла проблема с типизацией. Сам фильтруемый массив объектов 'cities' имеет тип City[] - соответственно там имеются все перечисленные ключи типа City (текст ошибки после примера с кодом). Мне нужен один объект типа City чтобы задиспатчить его для дальнейшего использования в других компонентах.
Ошибка:
/* const x: City В типе "City[]" отсутствуют следующие свойства из типа "City": title, lat, lng, zoom */
Код:
function LocationItem ({city}: LocationProps): JSX.Element {
const dispatch = useAppDispatch();
const x: City = cities.filter((el) => el.title === city);
Ответы (1 шт):
Используя .filter вы получите массив всех элементов, прошедших условие.
Если вы хотите получить один элемент, воспользуйтесь .find (не забываем, что он вернет null, если ничего не найдет):
function LocationItem ({city}: LocationProps): JSX.Element {
const dispatch = useAppDispatch();
const x: City | null = cities.find((el) => el.title === city);
Если же вам нужно получить массив всех совпадений, то у переменной x должен быть тип City[].
function LocationItem ({city}: LocationProps): JSX.Element {
const dispatch = useAppDispatch();
const x: City[] = cities.filter((el) => el.title === city);