이런 로직이 있을 때 어떻게 처리하면 좋을까만 나타내는 코드이다.

만약 3개중 하나를 선택해야한다면? 클린 코드 스터디 취지에 맞게 사소한 것도 고민해고, 생각 공유하기.....

1.

const mutateSelectedCarts = (mode: 'ADD' | 'REMOVE') => {
    if (mode === 'ADD') {
      setSelectedList((prev) => [...prev, selectedCartItem]);
      return;
    } 

    setSelectedList((prev) => prev.filter((cartItem) 
                                    => cartItem === selectedCartItem));
  };

2.

const mutateSelectedCarts = (mode: 'ADD' | 'REMOVE') => {
    if (mode === 'ADD') {
      setSelectedList((prev) => [...prev, selectedCartItem]);
    } else {
      setSelectedList((prev) => prev.filter((cartItem) 
                                         => cartItem === selectedCartItem));
    }
  };

3.

const mutateSelectedCarts = (mode: 'ADD' | 'REMOVE') => {
    if (mode === 'ADD') {
      setSelectedList((prev) => [...prev, selectedCartItem]);
    }

    if (mode === 'REMOVE'){
      setSelectedList((prev) => prev.filter((cartItem) =>
                                           cartItem === selectedCartItem));
    }
  };

고민

위 방법중 어떤 방법이 좋을까? 예전에는 항상 얼리 리턴이 좋다고 생각했다. 그러나 하다보니까 else게 좀 더 주석처럼 뭔가를 설명해주는 느낌이 드는 것 같아 if-else 도 너무 나쁘지 않은 것 같은데 생각이 들었다. 근데 이 방법말고 3번처럼 하면 더 설명적이지 않은가?

→ 지금은 논리가 A냐 B냐 이다. 어차피 타이핑으로 무조건 둘중 하나인데 그럼 if-else 가자 생각하고, 스터디원분들의 생각이 듣고 싶어졌다