[typescript] 타입 추론을 적용할 때 발생할 수 있는 예상치 못한 동작에 대한 대비 방법

타입스크립트는 강력한 타입 추론 기능을 제공하여 개발자들이 변수 및 함수의 타입을 명시적으로 선언하지 않고도 안전하게 코드를 작성할 수 있게 도와줍니다. 하지만 때로는 이러한 타입 추론이 예상치 못한 동작을 일으킬 수 있으며, 이를 이해하고 이에 대비하는 것이 중요합니다.

이 블로그 포스트에서는 타입 추론을 적용할 때 발생할 수 있는 예상치 못한 동작에 대한 대비 방법에 대해 알아보겠습니다.

1. 타입 추론의 이점과 함정

타입 추론은 간결한 코드 작성을 가능하게 하며, 많은 경우에 유용합니다. 그러나 타입 추론은 때로는 우리가 예상한 동작과는 다른 결과를 초래할 수 있습니다.

예를 들어, 다음과 같은 코드가 있다고 가정해봅시다.

let myVar = 10;
myVar = "Hello";

이 경우에 myVar 변수의 타입이 숫자로 추론될 것으로 예상할 겁니다. 하지만 두 번째 줄에서 문자열 할당이 발생하여 타입 에러가 발생하지 않습니다. 이는 타입스크립트가 가능한한 넓은 범위의 타입으로 추론하기 때문에 발생하는 현상입니다.

2. 명시적 타입 주석 사용

예상치 못한 동작으로부터 안전하게 코드를 작성하기 위한 한 가지 방법은 명시적 타입 주석을 사용하는 것입니다.

위의 예제를 다음과 같이 명시적인 타입 주석을 추가하여 수정할 수 있습니다.

let myVar: number = 10;
myVar = "Hello"; // 에러 발생

이렇게 하면 myVar의 타입을 명시적으로 숫자로 선언함으로써, 문자열을 할당하려고 할 때 타입 에러가 발생하게 됩니다.

3. 타입 가드 및 타입 단언 활용

타입 추론으로 발생하는 문제를 해결하기 위해 타입 가드타입 단언을 활용할 수도 있습니다.

예를 들어, 다음과 같이 typeof 연산자와 조건문을 활용해 타입 가드를 적용할 수 있습니다.

function doSomething(value: number | string) {
    if (typeof value === "number") {
        // value는 여기서 숫자로 타입 가드됨
        console.log(value.toFixed(2));
    } else {
        // value는 여기서 문자열로 타입 가드됨
        console.log(value.trim());
    }
}

또한, 경우에 따라 타입 단언을 사용하여 타입 추론을 재정의할 수 있습니다.

let myVar = "Hello" as number;

4. 코드 리뷰 및 테스트

마지막으로, 타입 추론의 예상치 못한 동작으로부터 안전하게 코드를 작성하는 가장 좋은 방법은 코드 리뷰 및 테스트입니다. 코드를 다른 개발자와 함께 리뷰하고, 각 상황에 대해 다양한 입력값을 활용하여 테스트하는 것이 중요합니다. 이를 통해 예상치 못한 동작에 대한 대비책을 마련할 수 있습니다.

결론

타입 추론은 매우 유용한 기능이지만, 그로 인해 예상치 못한 동작이 발생할 수 있습니다. 이에 대비하기 위해 명시적인 타입 주석, 타입 가드 및 단언, 그리고 코드 리뷰 및 테스트를 활용하여 안전하고 견고한 코드를 작성할 수 있습니다.

이러한 방법을 적용하여 타입 추론을 활용할 때 발생할 수 있는 예상치 못한 동작으로부터 안전하게 코드를 작성할 수 있습니다.