function isMoney(param: Money | Liter): param is Liter {
      if (param.__type === 'money') {
        return true;
      } else {
        return false;
      }
    }
    function moneyOrLiter(param: Money | Liter) {
      if (isMoney(param)) {
        param;
      } else {
        param;
      }
    }
    // (parameter) param: Liter
    // (parameter) param: Money
    

    따라서 최대한 기본적인 타입 좁히기를 먼저 시도하고, 정 안 될 때 타입 서술을 사용하는 게 좋습니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.