[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 함수를 사용하여 resultnumber 타입임을 검사하고, 그에 맞게 다른 작업을 수행하고 있습니다.

타입 가드는 유연하고 안정적인 코드를 작성하는 데 도움이 됩니다. 이를 통해 TypeScript는 더욱 강력한 타입 추론을 제공하고 런타임에서 타입 안정성을 유지할 수 있게 됩니다.

참조: