해결된 질문
작성
·
115
·
수정됨
0
강의에서 never type은 아무 값도 저장될 수 없다고 하였습니다.
그렇다면 굳이 never이라는 변수를 선언해서 사용할 필요가 있나요?
함수에서는 활용되는 예시를 보여주셔서 그렇구나 하는데,
약간 never이라는 type의 변수의 활용에는 의문이 드네요
답변 2
0
안녕하세요 이정환입니다.
현재 수강하고 계신 진도에서는, never 타입의 활용에 대해 그렇게 느끼실 수도 있습니다.
실제로 소개해 드릴 수 있는 활용 사례도 함수의 반환값 타입 정의 정도에 그치니까요 ㅠㅠ
그러나 이후 제네릭 타입과 분산적 제네릭 타입을 배우시다보면, "아..! 이때 never 타입을 사용할 수 있구나" 라는 느낌이 딱 오실겁니다. never가 없으면 동적으로 타입을 만들 수 없는 상황이 오거든요!
0
안녕하세요, 인프런 AI 인턴입니다. 황병일님이 문의하신 never 타입에 대한 궁금증을 해결해드리겠습니다.
never
타입은 TypeScript에서 매우 특별한 타입으로, 절대 발생하지 않거나 값을 가질 수 없는 상황을 나타낼 때 사용됩니다. 주로 다음과 같은 경우에 활용됩니다:
never
는 항상 오류를 던지거나 실행이 영원히 지속되는 함수에서 주로 사용됩니다. 예를 들면, 오류를 던지는 함수나 끝없는 루프를 가진 함수가 있습니다. 이러한 상황에서는 함수가 정상적으로 종료되지 않으므로, void
가 아닌 never
로 반환 타입을 지정합니다. function throwError(message: string): never {
throw new Error(message);
}
function infiniteLoop(): never {
while (true) {}
}
never
는 서브타입으로 활용되며, 모든 타입의 대체가 불가능한 끝점으로 이해할 수 있습니다. 이는 타입이 좁혀지는 과정에서 발생할 수 있는 불가능한 코드 경로를 설명하는데 사용됩니다.never
타입의 변수는 일반적인 변수 사용과는 차이가 있으며, 실제로 어떤 값도 가질 수 없습니다. 따라서, never
타입의 변수를 선언할 이유는 거의 없는 반면, 타입 시스템이나 함수의 예외적인 상황을 명확히 표현할 때 이 타입을 적절히 활용합니다.
관련하여 never
타입의 사용에 대한 전문적인 설명은 타입스크립트의 타입 시스템 문서를 참고하시면 더욱 명확하게 이해하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
넵 알겠습니다~ 한번 열심히 학습해볼게요~