[typescript] 클래스 타입을 확인하는 타입 가드 함수 작성 방법

TypeScript에서는 클래스의 인스턴스 타입을 확인하기 위해 타입 가드 함수를 사용할 수 있습니다. 타입 가드 함수는 특정 타입인지 여부를 확인하고, 해당 타입으로 타입스크립트 컴파일러에게 정보를 전달하는 역할을 합니다.

이 포스트에서는 TypeScript에서 클래스 타입을 확인하는 타입 가드 함수를 작성하는 방법에 대해 알아보겠습니다.

타입 가드 함수란?

타입 가드 함수는 함수의 반환값이 타입 가드 선언 형태를 가지면, 해당 함수가 반환하는 값을 타입 가드 변수로 사용할 수 있도록 하는 TypeScript의 기능입니다. 이를 활용하면 변수나 속성의 타입을 확인하고, 해당 타입에 따라 다른 동작을 수행할 수 있습니다.

클래스 타입 확인을 위한 타입 가드 함수 작성

다음은 instanceof 연산자를 사용하여 클래스 타입을 확인하는 타입 가드 함수를 작성하는 예시입니다.

class Car {
    brand: string;
    constructor(brand: string) {
        this.brand = brand;
    }
}

class Bike {
    type: string;
    constructor(type: string) {
        this.type = type;
    }
}

function isCar(vehicle: Car | Bike): vehicle is Car {
    return (vehicle as Car).brand !== undefined;
}

let vehicle1 = new Car('Toyota');
let vehicle2 = new Bike('Mountain');
console.log(isCar(vehicle1)); // true
console.log(isCar(vehicle2)); // false

위 예시에서 isCar 함수는 Car 클래스의 인스턴스인지 여부를 확인하는 타입 가드 함수입니다. 이 함수를 사용하여 vehicle 변수의 타입을 확인하고, 이에 따라 다른 동작을 수행할 수 있습니다.

마무리

이렇게 TypeScript에서는 클래스의 타입을 확인하는 타입 가드 함수를 사용하여 타입 안정성을 확보할 수 있습니다. 클래스뿐만 아니라, 다양한 타입에 대해 타입 가드 함수를 작성하여 프로그램의 안정성을 높일 수 있습니다.

위 내용은 TypeScript 공식 문서 및 여러 참고 자료를 토대로 작성되었습니다.

참고: TypeScript 공식 문서