사실 이 코드가 제대로 된 코드는 아닙니다. 마지막 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
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.