Deviopath › TypeScript

Cart Reducer

Medium · Discriminated Unions

Write cartReducer(cart: Cart, action: CartAction): Cart. A Cart maps item names to quantities. Switch on action.type:

- "add": increase the item quantity by qty (start from 0 if missing)

- "remove": delete the item completely (do nothing if missing)

- "clear": return an empty cart

Always return a new object. runCart is already written: it applies all actions starting from {}.

Next: Generic Stack Class