[typescript] 타입스크립트에서의 유니언 타입 변환 방식

타입스크립트에서, 유니언 타입은 여러 타입 중에 하나를 나타내는 방법으로 사용됩니다. 유니언 타입을 다른 타입으로 변환하기 위해 몇 가지 방법이 있습니다. 이번 포스트에서는 타입스크립트에서 유니언 타입을 다른 타입으로 변환하는 방법에 대해 알아보겠습니다.

타입 가드 활용

유니온 타입을 다른 타입으로 변환하는 가장 일반적인 방법은 타입 가드를 활용하는 것입니다. 타입 가드를 사용하여 유니언 타입을 좁혀서 다양한 조건에 따라 다른 타입으로 변환할 수 있습니다.

예를 들어, 다음과 같이 typeof 연산자를 사용하여 유니언 타입을 변환할 수 있습니다.

function processValue(input: string | number) {
  if (typeof input === 'string') {
    // input을 string으로 처리
  } else {
    // input을 number로 처리
  }
}

또는 instanceof 연산자를 활용하여 객체의 타입을 확인하고 변환할 수도 있습니다.

class Cat {
  // ...
}

class Dog {
  // ...
}

function adoptPet(pet: Cat | Dog) {
  if (pet instanceof Cat) {
    // pet을 Cat으로 처리
  } else {
    // pet을 Dog로 처리
  }
}

타입 캐스팅

또 다른 방법으로는 타입 캐스팅을 사용하여 유니온 타입을 다른 타입으로 변환할 수 있습니다. 타입 캐스팅을 통해 변수의 타입을 명시적으로 지정할 수 있습니다.

다음은 타입 캐스팅을 사용하여 유니언 타입을 다른 타입으로 변환하는 예시입니다.

function someFunction(input: string | number) {
  const result = (input as string).toUpperCase();
  // input을 string으로 변환하여 대문자로 처리
}

타입별 분기

때로는 간단한 경우에는 타입 가드나 타입 캐스팅보다 간단한 방식으로 유니언 타입을 다른 타입으로 변환할 수 있습니다. 예를 들어 분기문을 사용하여 각 타입에 맞게 처리할 수 있습니다.

function processData(input: string | number) {
  if (typeof input === 'string') {
    // input을 string으로 처리
  } else {
    // input을 number로 처리
  }
}

결론

이 포스트에서는 타입스크립트에서 유니언 타입을 다른 타입으로 변환하는 방법에 대해 살펴보았습니다. 타입 가드, 타입 캐스팅, 그리고 타입별 분기를 통해 유니언 타입을 다양한 상황에 맞게 변환할 수 있습니다.


참고 문헌: