[typescript] 타입 가드의 작동 원리
예를 들어, 다음과 같이 typeof
를 사용하여 숫자와 문자열을 구분하는 타입 가드를 작성할 수 있습니다.
function isNumber(value: string | number): value is number {
return typeof value === 'number';
}
위의 코드에서 value is number
는 타입 가드의 형식입니다. 이를 사용하여 해당 함수가 반환하는 값이 number
임을 TypeScript에게 알려줍니다. 그러면 다음과 같이 해당 함수를 사용할 수 있습니다.
let result: string | number = 5;
if (isNumber(result)) {
console.log('숫자입니다:', result.toFixed(2));
} else {
console.log('숫자가 아닙니다:', result.toUpperCase());
}
위의 예제에서, isNumber
함수를 사용하여 result
가 number
타입임을 검사하고, 그에 맞게 다른 작업을 수행하고 있습니다.
타입 가드는 유연하고 안정적인 코드를 작성하는 데 도움이 됩니다. 이를 통해 TypeScript는 더욱 강력한 타입 추론을 제공하고 런타임에서 타입 안정성을 유지할 수 있게 됩니다.
참조:
- https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards