타입스크립트는 정적 타입을 지원하기 때문에 배열의 요소를 다른 타입으로 변환하는 일이 종종 있습니다. 이러한 작업은 원래 배열을 수정하는 것이 아니라 새로운 배열을 생성하여 기존 배열의 값을 변환합니다. 이 글에서는 타입스크립트에서 배열의 타입을 변환하는 다양한 방법을 알아보겠습니다.
1. map
함수를 사용한 변환
가장 일반적인 방법은 map
함수를 사용하여 배열의 각 요소를 새로운 값으로 변환하는 것입니다.
예를 들어, number
타입의 배열을 string
타입의 배열로 변환하려면 다음과 같이 할 수 있습니다.
const numbers: number[] = [1, 2, 3, 4, 5];
const strings: string[] = numbers.map(String);
위의 예제에서 map
함수를 사용하여 numbers
배열의 각 요소를 String
함수를 통해 string
타입으로 변환한 새로운 배열을 생성했습니다.
2. 타입 단언을 사용한 변환
때로는 배열의 타입을 명시적으로 지정하여 변환할 수 있습니다. 이를 타입 단언(Type Assertion) 이라고 합니다.
예를 들어, any
타입의 배열을 string
타입의 배열로 변환하려면 다음과 같이 할 수 있습니다.
const anyArray: any[] = [1, 'two', true];
const stringArray: string[] = anyArray as string[];
위의 예제에서 anyArray
배열을 string
배열로 변환하기 위해 as string[]
를 사용하여 타입 단언을 했습니다.
3. 변환 유틸리티 함수 사용
마지막으로, 복잡한 타입 변환을 하게 될 경우에는 변환하는 데 도움이 될 수 있는 유틸리티 함수를 작성하여 사용할 수 있습니다.
예를 들어, 다음과 같이 map
함수와 타입 단언을 결합한 유틸리티 함수를 작성할 수 있습니다.
function mapAndAssert<T, U>(arr: T[], fn: (x: T) => U): U[] {
return arr.map(fn) as U[];
}
// 사용 예
const numbers: number[] = [1, 2, 3, 4, 5];
const strings: string[] = mapAndAssert(numbers, String);
위의 예제에서 mapAndAssert
함수는 map
함수와 타입 단언을 결합하여 원하는 타입으로의 변환을 지원합니다.
결론
타입스크립트에서 배열 타입 변환을 위해 map
함수, 타입 단언, 그리고 유틸리티 함수를 사용할 수 있습니다. 이를 통해 안전하고 효율적으로 배열의 타입을 변환할 수 있습니다. 이러한 방법들을 익혀두면 코드를 더욱 깔끔하게 작성할 수 있을 것입니다.
참고 자료: