더북(TheBook)
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

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

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