[TypeScript] Void와 Never 타입

ttining·2025년 3월 21일
0

Void

void : 공허(아무것도 없음)를 의미하는 타입
주로 "반환값을 무시하는 함수"에 사용된다.

// 문자열을 반환하는 함수
function func1(): string {
  return "hello";
}

// 아무 값도 반환하지 않는 함수
function func2(): void {
  console.log("hello");
}
let a: void;

a = 1; // Type 'number' id not assignable to type 'void'
a = "hello"; // Type 'string' id not assignable to type 'void'
a = {}; // Type '{}' id not assignable to type 'void'
a = undefined;
a = null; // ** Type 'null' id not assignable to type 'void'
  • void 타입 변수에는 undefined만 할당 가능 (strictNullCheckstrue일 경우)
  • ** Type 'null' id not assignable to type 'void'
    • tsconfig.json 파일 내에 "strictNullChecks": false를 설정하면 null을 할당할 수 있게 된다.


Never

never: 불가능한 상태를 의미하는 타입
절대 값을 가질 수 없으며, 함수가 정상적으로 종료되지 않는 경우에 사용된다.

// 무한 루프: 반환값이 없기 때문에 함수가 정상적으로 종료되지 않는다.
function func3(): never {
  while (true) {}
}

// 예외 발생: 함수가 값을 반환할 수 없음 (실행 시 프로그램이 중지된다.)
function func4(): never {
  throw new Error();
}
  • never 타입은 어떤 값도 가질 수 없는 타입이다.
  • 예외를 던지거나, 무한 루프처럼 절대 끝날 수 없는 함수에서 사용된다.
  • 반환값이 never인 함수는 실행이 끝날 가능성이 없으므로, return이 존재하지 않는다.
profile
내가 보려고 만든 벨로그 *'-'*

0개의 댓글