• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

이넘 활용 강의에서 궁금한 점이 있습니다.

22.04.21 09:51 작성 조회수 173

3

안녕하세요.

이넘활용 강의에서 

function askQuestion(answer: Answer){
    if(answer == Answer.Yes){
        console.log('정답입니다.');
    }
    if(answer == Answer.No){
        console.log('오답입니다.');
    }
}

askQuestion(Answer.Yes); <-- 가능
askQuestion('Yes'); <-- 불가능
 
이 부분 궁금한 점이 있습니다.
 
askQuestion(Answer.Yes);는 가능하나 askQuestion('Yes');는
오류가 나는데요.
askQuestion('Yes'); 이게 안되면 저 함수를 사용하는 의미가 없지 않나요?
 
askQuestion(Answer.Yes);는
Answer.Yes가 Answer.Yes랑 같냐? 라는 의미라서 당연한 소리 같은데
당연한 소리를 위해 함수를 만든 의미가 없지 않나요?
 
askQuestion('Yes');는 Answer.Yes가 'Yes'랑 같은지 묻는 내용이니
저 함수를 제대로 사용하려면 askQuestion('Yes'); 이게 되어야 하는데
이 부분에서 오류가 나니..저 함수를 사용하는 의미가 없지 않나요?
 
 

답변 1

답변을 작성해보세요.

0

안녕하세요 좋은 질문이네요. 이넘을 사용한다는 건 주어진 옵션 안에서만 선택할 수 있게 범위를 제한하겠다는 의미입니다. 상수화랑 비슷한 개념인데요. 상수화를 했을 때의 이점에 대해서는 추가로 학습해 보시면 좋을 것 같아요. 매번 함수를 호출할 때마다 문자열을 하드코딩해서 박는건 추후 값 추가, 변경에 대해서 유연하게 대처하기 어렵습니다 :)

넵 감사합니다.