Попытка определить лучший способ обеспечить строгую нулевую проверку TypeScript для функции - PullRequest
0 голосов
/ 06 августа 2020

У меня есть служебная функция 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 }];
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...