[typescript] 타입 가드의 필요성

타입스크립트는 정적 타입을 갖는 언어로, 변수의 타입을 명시하고 해당 타입에서 지원하는 메소드와 속성을 활용할 수 있다. 하지만 때로는 런타임에 변수의 타입을 확실하게 알 수 없는 경우가 있을 수 있다. 이때 타입 가드(Type Guard)를 사용하여 변수의 타입을 확인하고 해당 타입에서 안전하게 작업할 수 있다.

타입 가드란?

타입 가드는 런타임에 변수의 타입을 확인하고 그에 따라 타입을 조정하는 기법이다. 주로 typeof, instanceof, in, guard function 등을 활용하여 변수의 타입을 추론하는 방식이다.

사용 예시

아래는 타입 가드를 사용하여 numberstring 타입을 구분하는 예시이다.

function printLength(input: number | string) {
  if (typeof input === 'number') {
    console.log(`입력값은 숫자입니다. 값은 ${input}이고 길이는 0입니다.`);
  } else if (typeof input === 'string') {
    console.log(`입력값은 문자열입니다. 값은 ${input}이고 길이는 ${input.length}입니다.`);
  } else {
    // 이 부분은 실행될 확률이 거의 없지만 컴파일러에 의해 검증된다.
    const _exhaustiveCheck: never = input;
  }
}

위 예시에서 typeof를 사용하여 numberstring을 구분하고, 각각에 맞는 작업을 수행한다. 또한 never 타입을 사용하여 모든 경우에 대한 처리가 되었음을 컴파일러에게 알려준다.

타입 가드를 활용하면 런타임에 변수의 타입을 안전하게 확인하고 해당 타입에 맞게 코드를 작성할 수 있다. 이를 통해 타입 안정성을 높이고 프로그램 안정성을 확보할 수 있다.

결론

타입 가드는 타입스크립트의 강력한 기능 중 하나로, 런타임에 타입 안전성을 유지하는데 도움을 준다. 변수의 타입을 명확하게 알 수 없는 상황에서 활용하여 안전하고 확실한 코드를 작성할 수 있기 때문에 프로젝트의 유지보수성과 안정성을 높이는데 기여한다.

참고 문헌:

앞으로 다양한 상황에서 타입 가드를 활용하여 안전하고 효율적인 코드를 작성하는데 적극적으로 활용해보자.