[typescript] 객체 타입을 확인하는 타입 가드 함수 작성 방법
TypeScript에서는 자주 사용되는 객체의 타입을 확인하는 타입 가드 함수를 작성할 수 있습니다. 타입 가드 함수는 런타임에서 특정 객체의 타입을 확인하고, 해당 객체를 보다 구체적인 타입으로 추론할 수 있도록 도와줍니다. 이를 통해 코드의 안정성을 보장하고, 타입 추론의 정확도를 높일 수 있습니다.
타입 가드 함수 작성 방법
타입 가드 함수를 작성하기 위해서는 다음과 같은 단계를 따릅니다.
1. typeof
연산자를 사용한 타입 가드
typeof
연산자를 활용하여 해당 속성이 특정한 타입인지를 확인하는 타입 가드 함수를 작성할 수 있습니다.
function isString(value: unknown): value is string {
return typeof value === 'string';
}
2. 사용자 정의 타입 가드
인터페이스나 타입으로 정의된 객체의 속성을 확인하여 타입을 가드하는 사용자 정의 타입 가드를 작성할 수 있습니다.
interface Car {
model: string;
year: number;
}
function isCar(obj: any): obj is Car {
return 'model' in obj && 'year' in obj;
}
3. instanceof
연산자를 사용한 타입 가드
클래스의 생성자 함수와 instanceof
연산자를 이용하여 특정 클래스의 인스턴스인지를 확인하는 타입 가드를 작성할 수 있습니다.
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
}
class Dog extends Animal {
breed: string;
constructor(name: string, breed: string) {
super(name);
this.breed = breed;
}
}
function isDog(obj: any): obj is Dog {
return obj instanceof Dog;
}
4. in
연산자를 사용한 타입 가드
in
연산자를 사용하여 객체의 속성 존재 여부를 확인하여 타입을 가드하는 방법입니다.
interface Rectangle {
width: number;
height: number;
}
function isRectangle(obj: any): obj is Rectangle {
return 'width' in obj && 'height' in obj;
}
결론
타입 가드 함수를 작성하면 TypeScript에서 자바스크립트와 마찬가지로 객체의 타입을 보다 안전하게 다룰 수 있습니다. 타입 가드 함수를 통해 코드의 안정성을 높이고, 타입 안정성을 유지하는데 도움을 줄 수 있습니다.
참고 자료: TypeScript 공식 문서 - 타입 가드
감사합니다!