TypeScript - TypeScript never type

꼬디바아 ㅣ 2024. 3. 4. 10:14

728x90

TypeScript 대표이미지

 

728x90

 

🖥️ never type?

never 타입은 TypeScript에서 모든 타입의 하위 타입으로, 절대 발생하지 않는 값의 타입을 나타낸다. 주로 함수의 반환 타입으로 사용되며, 해당 함수가 하상 예외를 던지거나 무한 루프에 빠지는 등의 상황에서 유용하게 활용된다.

 

🖥️ 항상 예외를 던지는 함수

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

// 이 함수가 예외를 던진다면, 그 결과는 never 타입으로 판단됩니다.
const result: never = throwError("Something went wrong!");

 

🖥️ 무한 루프에 빠진 함수

function infiniteLoop(): never {
  while (true) {
    console.log("This is an infinite loop!");
  }
}

// 이 함수가 무한 루프에 빠진다면, 그 결과는 never 타입으로 판단됩니다.
const result: never = infiniteLoop();

 

🖥️ switch 문의 모든 경우를 다루는 함수

type Fruit = "apple" | "banana" | "orange";

function describeFruit(fruit: Fruit): string {
  switch (fruit) {
    case "apple":
      return "It's a red fruit.";
    case "banana":
      return "It's a yellow fruit.";
    case "orange":
      return "It's an orange fruit.";
    default:
      // 만약 switch 문에서 모든 경우를 다루었다면, 여기서는 더 이상 도달할 수 없는 영역입니다.
      const exhaustiveCheck: never = fruit;
      return exhaustiveCheck;
  }
}
728x90