더북(TheBook)

사실 이 코드가 제대로 된 코드는 아닙니다. 마지막 else문에서 param의 타입이 string | null이거든요. typeof param === 'undefined'에서 undefined 타입이 걸러지지만 else if문에서 string이 걸러지지 않습니다. 빈 문자열('')이 있으므로 else문에서도 paramstring일 수 있습니다.

그리고 자바스크립트에서는 typeof null'object'입니다(유명한 버그입니다). 객체와 typeof 결과가 똑같아서 typeof로는 null을 구분할 수 없습니다.

사실은 매우 간단하게 구분할 수 있습니다.

function strOrNullOrUndefined(param: string | null | undefined) {
  if (param === undefined) {
    param;
  } else if (param === null) {
    param;
  } else {
    param;
  }
}
// (parameter) param: undefined
// (parameter) param: null
// (parameter) param: string
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.