타입 가드(Type Guard)는 TypeScript에서 변수의 타입을 좁히는 방법으로, 런타임에서 변수의 타입을 검사하여 타입 추론을 개선하는 메커니즘입니다. 타입 가드를 사용하면 특정 조건이 충족될 때 변수의 타입을 좁혀서 더 구체적인 타입으로 사용할 수 있습니다.
타입 가드는 다음과 같은 방법으로 구현할 수 있습니다:
1. 타입 체크:
특정 조건을 사용하여 변수의 타입을 확인하는 방법입니다. typeof
, instanceof
, in
등의 연산자를 사용하여 변수의 타입을 체크할 수 있습니다.
function printLength(value: string | number) {
if (typeof value === 'string') {
console.log(value.length); // value의 타입이 string인 경우에만 접근 가능
}
}
2. 사용자 정의 타입 가드:
사용자 정의 함수를 통해 변수의 타입을 체크하는 방법입니다. 함수의 반환 타입에 value is Type
형태를 사용하여 해당 조건이 충족될 때 true
를 반환하도록 합니다.
function isString(value: any): value is string {
return typeof value === 'string';
}
function printLength(value: string | number) {
if (isString(value)) {
console.log(value.length); // value의 타입이 string인 경우에만 접근 가능
}
}
타입 가드를 사용하면 타입 추론이 개선되어 변수의 타입이 더욱 구체화되고, 이에 따라 IDE에서 해당 타입에 대한 지원과 자동완성 등의 장점을 누릴 수 있습니다. 또한 코드의 안전성과 가독성을 향상시킬 수 있습니다. 타입 가드는 TypeScript의 강력한 기능 중 하나이며, 다양한 상황에서 유용하게 활용될 수 있습니다.