[typescript] 타입 가드 함수를 사용하여 타입 안정성 향상하기
TypeScript에서는 값의 타입을 더욱 정확하게 추론하고자 할 때 타입 가드 함수를 사용할 수 있습니다. 타입 가드 함수를 활용하면 실행 시간에 발생할 수 있는 예기치 않은 동작을 사전에 방지하고 타입 안정성을 향상시킬 수 있습니다.
타입 가드 함수란?
타입 가드 함수는 주어진 값이 특정 타입인지 검사하여 해당 값을 해당 타입으로 변환하는 함수입니다. 이를 통해 해당 값의 타입을 보다 구체적으로 추론하고 조작하여 정적 타입 검사를 더욱 강화할 수 있습니다.
function isString(value: any): value is string {
return typeof value === 'string';
}
위 코드에서 isString
함수는 주어진 value
가 문자열인지를 검사하고 해당 값이 문자열이라면 true
를 반환합니다.
사용 예시
typeof 검사
function capitalize(str: string | number): string {
if (typeof str === 'string') {
return str.toUpperCase();
}
// 여기서 str은 number 타입이다.
return ''; // 빈 문자열을 반환
}
instanceof 검사
class Car {
drive() {
return 'Driving';
}
}
class Bike {
cycle() {
return 'Cycling';
}
}
function moveVehicle(vehicle: Car | Bike) {
if (vehicle instanceof Car) {
return vehicle.drive();
} else {
return vehicle.cycle();
}
}
in 연산자를 통한 프로퍼티 존재 여부 검사
interface Square {
size: number;
}
interface Rectangle {
width: number;
height: number;
}
function isSquare(shape: Square | Rectangle): shape is Square {
return 'size' in shape;
}
결론
타입 가드 함수를 사용하여 TypeScript 코드의 타입 안정성을 향상시킬 수 있습니다. 이를 통해 런타임에서 예상치 못한 동작이 발생하는 것을 방지하고 보다 안전한 코드를 작성할 수 있습니다.
더 많은 정보를 원하시거나 타입 가드 함수 관련하여 궁금한 점이 있으시다면 TypeScript 공식 문서를 참고하시기 바랍니다.