[typescript] 타입 가드를 사용하지 않고 가변성 문제 해결하기 예제 코드

일반적으로 TypeScript에서는 타입 가드를 사용하여 가변성 문제를 해결합니다. 그러나 때때로 타입 가드의 사용이 불가능할 때가 있습니다. 이때는 다른 방법을 사용하여 가변성 문제를 해결해야 합니다. 이번에는 타입 가드를 사용하지 않고 가변성 문제를 어떻게 해결하는지 살펴보겠습니다.

문제 상황

가령, 다음과 같은 경우를 살펴봅시다.

let data: string | number = "hello";

data = 10; // 이 시점에서 data 변수의 타입은 number로 변해버립니다.

위 코드에서는 data 변수가 초기에는 string 또는 number 중 하나의 타입을 가지는 것으로 정의되었습니다. 그리고 나중에 data에 숫자를 할당하여 이 변수의 타입이 string에서 number로 변하게 됩니다.

타입 단언(Type Assertion)을 이용한 해결

타입 가드를 사용하지 않고 가변성 문제를 해결하기 위한 한 가지 방법은 타입 단언을 사용하는 것입니다.

다음은 타입 단언을 사용하여 문제를 해결하는 예시입니다.

let data: string | number = "hello";

data = 10;
let fixedData = data as number;
// 이제 fixedData 변수의 타입은 number로 확정됩니다.

결론

타입 가드가 사용 불가능한 상황에서는 타입 단언을 이용하여 가변성 문제를 해결할 수 있습니다. 그러나 타입 단언을 남용하게 되면 타입 안정성에 문제가 발생할 수 있으므로 주의해야 합니다.

이상으로 타입 가드를 사용하지 않고 가변성 문제를 해결하는 방법에 대해 알아보았습니다.

참고 문헌: