[typescript] 타입 가드를 사용한 런타임 시 타입 체크

타입 가드(Type Guard)는 TypeScript에서 런타임 시 변수의 타입을 보다 정확하게 체크하기 위해 사용되는 패턴입니다. 이를 통해 코드의 안전성을 높일 수 있고, 타입 안정성을 갖춘 코드를 작성할 수 있습니다. 이번 포스트에서는 타입 가드를 사용하여 런타임 시 타입을 신뢰할 수 있는지에 대해 살펴보겠습니다.

타입 가드란 무엇인가요?

타입 가드는 타입스크립트에서 변수의 타입을 좀 더 정확하게 추론할 수 있도록 도와주는 기능입니다. 주로 다음과 같은 상황에서 사용됩니다.

타입 가드의 예시

다음은 타입 가드를 사용한 예시입니다.

interface Circle {
  kind: "circle";
  radius: number;
}

interface Square {
  kind: "square";
  sideLength: number;
}

type Shape = Circle | Square;

function getArea(shape: Shape): number {
  if (shape.kind === "circle") {
    return Math.PI * shape.radius ** 2;
  } else {
    return shape.sideLength ** 2;
  }
}

위 예시에서 getArea 함수는 Shape 타입을 가진 매개변수 shape를 받고 있습니다. 여기서 shapekind 프로퍼티를 확인하여 Circle인지 Square인지를 체크하고 있습니다. 이를 통해 타입 가드를 사용하여 getArea 함수 내에서 해당 타입의 프로퍼티에 안전하게 접근할 수 있습니다.

타입 가드의 장점

타입 가드를 사용하면 런타임 시에도 타입 안정성을 보장할 수 있고, 코드의 런타임 에러를 방지할 수 있습니다. 또한 타입 가드를 활용하면 코드의 가독성을 높일 수 있으며, 더욱 안정적인 소프트웨어를 개발할 수 있습니다.

결론

타입 가드는 TypeScript에서 런타임 시 타입을 보다 안전하게 체크하는 데에 유용한 도구입니다. 이를 활용하면 코드의 안정성을 높일 수 있고, 런타임 에러를 방지할 수 있습니다. 따라서 타입 가드를 적극적으로 활용하여 안정적이고 안전한 코드를 작성하는 데에 주저하지 말아야 합니다.

참조: TypeScript 공식 문서 - 타입 가드