[typescript] 타입 가드를 사용한 컴파일 시 타입 체크

TypeScript는 정적 타입 지정을 통해 코드의 안정성을 높여주지만, 때로는 변수의 타입을 정확히 판단하기 어려운 경우가 있습니다. 이때 타입 가드(Type Guard)를 사용하여 런타임에서의 변수 타입을 체크하여 정적 타입 체크를 보완할 수 있습니다.

타입 가드란 무엇인가요?

타입 가드란 런타임에서 변수의 타입을 정확히 판단하는 기법을 말합니다. 보통 조건문이나 타입 검사 함수를 사용하여 해당 변수의 타입을 좁혀나가는 방식으로 구현됩니다. 이를 통해 TypeScript 컴파일러는 코드 내에서 해당 변수를 사용할 때 정확한 타입을 유추할 수 있게 됩니다.

타입 가드의 예시

다음은 instanceof를 이용한 타입 가드의 예시입니다.

class Car {
    start() {
        console.log('Car started');
    }
}

class Bike {
    start() {
        console.log('Bike started');
    }
}

function moveVehicle(vehicle: Car | Bike) {
    if (vehicle instanceof Car) {
        vehicle.start();
    } else {
        vehicle.start();
    }
}

위 예시에서 moveVehicle 함수 내에서 vehicle의 타입을 체크하여 start 메서드를 호출하고 있습니다. 이렇게 함으로써 TypeScript는 런타임에서 vehicle의 실제 타입을 판단할 수 있게 됩니다.

더 나아가기

타입 가드는 타입스크립트의 강력한 기능 중 하나로, 올바른 사용법을 마스터하면 코드의 안정성과 가독성을 높일 수 있습니다. 자세한 내용은 TypeScript 공식 문서를 참고하면 도움이 될 것입니다.

타입 가드에 대한 더 자세한 내용은 TypeScript 공식 문서를 확인해주세요.