[typescript] 타입 추론으로 인한 예상치 못한 버그의 예방

타입스크립트는 정적 타입 지정 언어로, 변수 및 함수의 타입을 명시적으로 지정할 수 있지만, 타입 추론이라는 기능을 이용하여 대부분의 경우에는 타입을 자동으로 추론합니다. 이는 코드를 간결하게 작성할 수 있도록 도와주지만, 종종 예상치 못한 버그를 초래할 수 있습니다.

타입 추론의 장점

타입 추론은 코드를 작성할 때 별도의 타입 지정 없이도 자동으로 타입을 유추해줍니다. 이를 통해 코드 작성 시간을 단축하고 가독성을 높일 수 있으며, 초보자가 타입스크립트로 쉽게 시작할 수 있도록 도와줍니다.

// 타입을 명시적으로 지정하지 않아도 문자열과 숫자를 할당할 때 해당 타입으로 추론됨
let message = "hello";
let count = 5;

예상치 못한 버그

하지만, 타입 추론으로 인해 예상치 못한 버그가 발생할 수 있습니다. 특히 여러 타입이 결합된 경우에 타입 추론은 예상과 다르게 동작할 수 있습니다.

function add(a, b) {
  return a + b;
}

let result = add("1", 2);
console.log(result); // "12"

위 예제에서 add 함수는 두 개의 파라미터를 받아 더한 결과를 반환하는 함수입니다. 그러나 ab의 타입을 명시하지 않았기 때문에 타입 추론에 의해 a가 문자열, b가 숫자로 추론됩니다. 이는 예상치 못한 결과를 초래할 수 있으며, 이러한 상황에서는 타입을 명시적으로 지정하는 것이 좋습니다.

타입 지정의 중요성

따라서, 타입스크립트를 사용할 때에는 타입 추론만에 의존하지 않고, 명시적인 타입 지정을 통해 버그를 예방하는 것이 중요합니다. 명시적인 타입 지정은 코드를 더 명확히 하고, 버그를 줄이며, 유지 보수를 용이하게 해줍니다.

function add(a: number, b: number): number {
  return a + b;
}

let result = add("1", 2); // Error: 문자열과 숫자의 덧셈은 에러 발생

타입 추론은 빠르고 편리하지만, 명시적인 타입 지정을 통해 코드의 안전성을 높이고 예상치 못한 버그를 방지할 수 있습니다.


참고 문헌: