스터디/프론트 스터디

never와 unknown 타입

0_TLS 2026. 4. 21. 02:23

never

never는 절대 발생할 수 없는 값을 나타내는 타입.

ex. 함수가 값을 반환하지 않고 항상 예외를 던지거나 무한 루프를 도는 경우, 그 반환 타입은 never가 됨

function throwError(message: string): never{
	throw new Error(message);
}

이 함수는 어떤 값도 반환하지 않고 실행될 경우 예외를 던지기 때문에 never 반환 타입을 가짐

 

unknown

unknown은 알 수 없는 값을 나타내는 타입.

외부 API 호출 결과 처럼 값이 구체적인 타입을 미리 알 수 없고, 런타임에 타입이 결정되는 경우에 사용.

any와 비슷하지만 더 안전한 방식

- any는 어떤 값이든 허용하기 때문에 타입 안정성이 떨어질 수 있지만

- unknonw은 특정한 타입으로 사용하려면 타입을 좁혀야 하기 때문

function processUnknownValue(value: unknown){
	if(typeof value === "stirng"){
    //
    }else if(typeof value === "number"){
    //
    }else{
    //
  }
}

unknown은 직접 타입을 강제할 수 없고 타입을 좁혀야 사용할 수 있다는 점에서 any보다 안전.

 

never 와 void타입의 차이?

void는 함수가 명시적으로 값을 반환하지 않음을 의미하지만, never 타입은 아예 반환될 수 없는 상태를 나타냄.

void는 정상적인 종료를 하지만 never는 실행이 끝날 수 없는 함수에 적용되는 타입

'스터디 > 프론트 스터디' 카테고리의 다른 글

useRef vs let  (0) 2026.05.05
브라우저 메모리 캐시와 디스크 캐시  (0) 2026.05.05
css 속성 dvh, svh, lvh 란?  (0) 2026.04.16