[typescript] 불필요한 타입 변환 방지를 위한 코드 개선 방안

타입스크립트(TypeScript)에서는 종종 불필요한 타입 변환으로 인한 성능 저하가 발생할 수 있습니다. 이러한 상황을 방지하고자 코드를 개선하는 방안에 대해 알아보겠습니다.

1. 타입 추론

기본적으로 타입스크립트는 변수의 타입을 추론합니다. 즉, 변수에 대입된 값을 통해 해당 변수의 타입을 추정합니다. 따라서, 별도의 타입 변환 없이 변수를 사용할 수 있습니다.

// Bad
const numberVar: any = 10;
const strVar: string = numberVar as string;

// Good
const numberVar = 10;
const strVar: string = numberVar.toString();

2. 타입 가드 활용

타입 가드를 사용하여 불필요한 타입 변환이 발생하지 않도록 할 수 있습니다. 타입 가드(Type Guard) 는 특정 타입을 확실하게 판단할 수 있는 구조를 만들어주는 타입스크립트의 기능입니다.

// Bad
function printLength(obj: any) {
  if (typeof obj === "string") {
    const strLength: number = (obj as string).length;
    console.log(strLength);
  }
}

// Good
function printLength(obj: string | number) {
  if (typeof obj === "string") {
    console.log(obj.length);
  }
}

3. 제네릭 활용

제네릭을 활용하여 함수나 클래스를 만들 때, 입력 값의 타입을 보장할 수 있습니다. 이를 통해 런타임 중 타입 변환을 최소화할 수 있습니다.

// Bad
function identity(arg: any): any {
  return arg;
}

// Good
function identity<T>(arg: T): T {
  return arg;
}

불필요한 타입 변환은 코드의 가독성을 해칠 뿐만 아니라 성능에도 영향을 미칠 수 있습니다. 따라서, 타입스크립트를 사용할 때는 불필요한 타입 변환을 최소화하고자 위의 방법들을 적극적으로 활용하는 것이 중요합니다.

참고: TypeScript 공식 문서