У меня есть служебная функция TypeScript, которую я написал, которая принимает объект Item в массиве и добавляет свойство amount , которое увеличивается на 1 для каждого повторяющегося Item такого типа, добавляемого в этот массив. .
Проблема, с которой я столкнулся, заключается в том, что я уже использую оператор распространения в функции и все еще получаю сообщение об ошибке TypeScript, в котором указано Object is possibly undefined
.
Я не уверен, как обойти это, не написав что-то подробное для проверки if cartItem && (...rest of my function)
РЕДАКТИРОВАТЬ: Версия TypeScript в моем проекте - 3.9.7
Current Function
import { Item } from "../../pages/shop/shop.component";
export const addItemToCart = (cartItems: Item[], cartItemToAdd: Item) => {
const existingCartItem = cartItems.find(
(cartItem: Item) => cartItem.id === cartItemToAdd.id
);
if (existingCartItem) {
return cartItems.map((cartItem) =>
cartItem.id === cartItemToAdd.id
// Error on this line at ? {...cartItem, quantity: cartItem.quantity + 1}
? { ...cartItem, quantity: cartItem.quantity + 1 }
: cartItem
);
}
return [...cartItems, { ...cartItemToAdd, quantity: 1 }];
};