[typescript] 타입 변환 최적화를 위한 반복문 사용 시의 주의사항

타입스크립트(TypeScript)에서는 종종 배열이나 객체 등의 데이터를 다른 형태로 변환해야 할 때가 있습니다. 이때 for…of나 forEach와 같은 반복문을 사용하여 각 요소를 변환하는 것이 일반적입니다. 그러나 이러한 반복문 사용 시, 타입 변환을 최적화하기 위해 몇 가지 주의해야 할 점이 있습니다.

1. 반복문 내에서 타입 단언 사용

일반적으로 반복문 내에서 요소의 타입을 단언할 필요가 있을 수 있습니다. 이때 다음과 같이 타입 단언 연산자(as)를 사용할 수 있습니다.

const array: unknown[] = [1, 'two', true];
for (const item of array) {
  if (typeof item === 'number') {
    // item이 number 타입으로 변환된다고 단언
    const numberItem: number = item as number;
    // numberItem을 사용
  }
}

2. 타입 가드 활용

특정 조건에 따라 타입을 변환해야 하는 경우, 타입 가드를 사용하여 해당 요소의 타입을 정확히 추론할 수 있도록 해야 합니다.

interface Dog {
  bark(): void;
}

interface Cat {
  meow(): void;
}

function isDog(pet: Dog | Cat): pet is Dog {
  return (pet as Dog).bark !== undefined;
}

const pets: (Dog | Cat)[] = [/* ... */];
for (const pet of pets) {
  if (isDog(pet)) {
    // pet은 Dog 타입으로 변환된다고 단언
    pet.bark();
  } else {
    // pet은 Cat 타입으로 변환된다고 단언
    pet.meow();
  }
}

결론

반복문을 사용하여 타입 변환을 수행할 때, 타입 단언 연산자나 타입 가드를 활용하여 각 요소의 타입을 정확하게 추론할 수 있도록 해야 합니다. 올바른 타입 추론을 통해 타입 변환의 최적화를 실현할 수 있으며, 코드의 안정성을 높일 수 있습니다.

더 많은 정보를 원하시면, TypeScript 공식 문서를 참고해 주세요.