[typescript] never 타입을 사용하여 절대 발생하지 않는 값을 처리하는 방법

TypeScript의 never 타입은 절대 발생하지 않는 값을 처리할 때 사용됩니다. 이는 보통 함수에서 반환 타입으로 사용되며, 해당 함수가 항상 예외를 던지거나 절대 값을 반환하지 않을 때 유용합니다.

never 타입의 사용 예시

1. 항상 예외를 던지는 함수의 반환 타입으로 설정

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

위의 예시에서 throwError 함수는 예외를 던지고 그 이후에 어떠한 값도 반환하지 않기 때문에 반환 타입으로 never가 사용되었습니다.

2. switch 문의 모든 case를 다루고 남은 상황 처리

type Action = { type: 'ADD' } | { type: 'REMOVE' };

function performAction(action: Action) {
  switch (action.type) {
    case 'ADD':
      // do something
      break;
    case 'REMOVE':
      // do something
      break;
    default:
      const exhaustiveCheck: never = action;
  }
}

위의 예시에서 performAction 함수에서 default case를 처리할 때 never 타입을 사용하여 모든 case를 다룬 후에도 남았는지를 체크할 수 있습니다.

결론

never 타입은 코드에서 예외적인 상황을 다룰 때나 모든 가능한 경우를 다룬 후 남은 상황을 처리할 때 유용하게 사용됩니다. 해당 상황에서는 프로그램의 안정성을 높이고 예기치 않은 동작을 방지하는 데 도움이 됩니다.