[typescript] 타입 변환을 피할 수 있는 대안 고려 방법

타입 변환은 종종 TypeScript 코드에서 발생하는 일반적인 문제입니다. 코드에서의 타입 변환은 대개 개발자가 타입 시스템을 우회하거나 “any” 타입을 사용해야 할 때 발생합니다. 그러나 이러한 변환은 코드의 안정성을 저해할 수 있습니다. 이를 피할 수 있는 몇 가지 대안을 살펴보겠습니다.

1. 제네릭 활용

제네릭은 TypeScript에서 타입 안정성을 확보하는데 유용합니다. 제네릭을 사용하면 런타임에 변환 없이 타입을 보장할 수 있습니다. 다음은 제네릭을 활용한 예시입니다.

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

위 예시에서 함수 identity는 인자의 타입을 보존하면서 반환합니다.

2. 유니언 타입 활용

유니언 타입을 사용하면 여러 타입을 동시에 허용할 수 있습니다. 이를 통해 타입 변환을 피할 수 있습니다.

function padLeft(value: string, padding: string | number) {
  // code
}

위 예시에서 padding 매개변수는 string 또는 number 타입 중 하나가 될 수 있습니다.

3. 타입 가드 사용

타입 가드를 통해 런타임 시에 타입을 확인할 수 있습니다. 이를 사용하면 타입 변환을 최소화하고 코드의 안정성을 높일 수 있습니다.

function isNumber(value: any): value is number {
  return typeof value === 'number';
}

function example(foo: string | number) {
  if (isNumber(foo)) {
    // 여기서는 foo가 number로 타입 변환됩니다.
    console.log(foo + 100);
  }
}

이러한 방법들을 활용하여 타입 변환을 피할 수 있으며, 코드의 안정성을 유지할 수 있습니다.

타입 변환을 최소화하고, 대신 위의 방법들을 활용하여 타입 안정성을 확보하는 것이 좋습니다.

TypeScript 공식 문서 - Advanced Types