[typescript] 타입스크립트 타입 추론의 한계

타입스크립트는 정적 타입 언어로, 변수와 매개변수의 타입을 추론할 수 있습니다. 하지만, 타입스크립트의 타입 추론에는 몇 가지 한계가 있습니다. 이 블로그 포스트에서는 타입스크립트의 타입 추론이 어떤 경우에 한계에 부딪히는지 살펴보고, 이를 극복하기 위한 방법에 대해 알아보겠습니다.

타입 추론의 기본 원리

타입스크립트는 변수를 선언할 때 해당 변수에 할당된 값을 기반으로 타입을 추론합니다. 예를 들어, 다음과 같이 변수를 선언할 때 타입 추론이 이루어집니다.

let num = 10; // num의 타입은 number로 추론됨

또한, 함수 매개변수의 타입도 해당 매개변수로 전달된 값의 타입을 기반으로 추론됩니다.

function greet(message: string) {
  console.log(`Hello, ${message.toUpperCase()}!`);
}

한계와 대응 방법

하지만, 타입스크립트는 몇 가지 상황에서 타입을 추론하지 못하는 경우가 있습니다. 예를 들어, 변수에 여러 가지 타입이 할당될 수 있는 경우나 함수의 반환 타입이 명시적으로 지정되지 않은 경우에 타입 추론이 어려울 수 있습니다.

이러한 경우, 개발자는 명시적으로 타입을 지정하거나 타입 단언을 사용하여 타입 추론의 한계를 극복할 수 있습니다.

let result: number | string;
result = Math.random() < 0.5 ? "hello" : 123;

function fetchData(): Promise<Data> {
  // ...
}

결론

타입스크립트의 타입 추론은 많은 경우 유용하지만, 그 한계를 인지하고 적절하게 대응하는 것이 중요합니다. 명시적인 타입 지정과 타입 단언을 활용하여 타입 추론의 한계를 극복하고 타입 안정성을 유지하는 것이 좋습니다.

이상으로 타입스크립트 타입 추론의 한계에 대한 내용을 살펴보았습니다.

관련 자료: 타입스크립트 핸드북 - 타입 추론