[typescript] 타입 가드를 사용한 런타임 시 타입 체크
타입 가드(Type Guard)는 TypeScript에서 런타임 시 변수의 타입을 보다 정확하게 체크하기 위해 사용되는 패턴입니다. 이를 통해 코드의 안전성을 높일 수 있고, 타입 안정성을 갖춘 코드를 작성할 수 있습니다. 이번 포스트에서는 타입 가드를 사용하여 런타임 시 타입을 신뢰할 수 있는지에 대해 살펴보겠습니다.
타입 가드란 무엇인가요?
타입 가드는 타입스크립트에서 변수의 타입을 좀 더 정확하게 추론할 수 있도록 도와주는 기능입니다. 주로 다음과 같은 상황에서 사용됩니다.
- Union 타입을 가진 변수의 타입을 좁히기 위해
- 객체의 특정 프로퍼티의 존재 여부를 확인하여 변수의 타입을 추론하기 위해
- instanceof나 typeof 등의 연산자를 활용하여 변수의 타입을 확인하기 위해
타입 가드의 예시
다음은 타입 가드를 사용한 예시입니다.
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
를 받고 있습니다. 여기서 shape
의 kind
프로퍼티를 확인하여 Circle
인지 Square
인지를 체크하고 있습니다. 이를 통해 타입 가드를 사용하여 getArea
함수 내에서 해당 타입의 프로퍼티에 안전하게 접근할 수 있습니다.
타입 가드의 장점
타입 가드를 사용하면 런타임 시에도 타입 안정성을 보장할 수 있고, 코드의 런타임 에러를 방지할 수 있습니다. 또한 타입 가드를 활용하면 코드의 가독성을 높일 수 있으며, 더욱 안정적인 소프트웨어를 개발할 수 있습니다.
결론
타입 가드는 TypeScript에서 런타임 시 타입을 보다 안전하게 체크하는 데에 유용한 도구입니다. 이를 활용하면 코드의 안정성을 높일 수 있고, 런타임 에러를 방지할 수 있습니다. 따라서 타입 가드를 적극적으로 활용하여 안정적이고 안전한 코드를 작성하는 데에 주저하지 말아야 합니다.