[typescript] 배열 메소드 타입 추론 향상을 위한 팁

TypeScript는 정적 타입 추론을 통해 코드의 안정성을 높이는 강력한 기능을 제공합니다. 특히 배열과 같은 데이터 구조를 다룰 때, 메소드를 사용하는 방법에 따라 타입 추론의 정확도가 달라집니다. 이번 포스트에서는 TypeScript 배열 메소드를 사용할 때 타입 추론을 향상시키는 몇 가지 팁을 소개하겠습니다.

1. map 메소드 활용

map 메소드를 사용할 때, 원본 배열과 반환되는 값을 활용하여 정확한 타입 추론을 유도할 수 있습니다.

const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map((num) => num * 2); // doubled: number[]

2. filter 메소드의 활용

filter 메소드도 마찬가지로 조건 함수를 통해 배열의 원소를 걸러내면서 타입을 추론할 수 있습니다.

const numsOrUndefined = [1, 2, undefined, 3, 4, undefined, 5, undefined];
const numbersOnly = numsOrUndefined.filter((val): val is number => typeof val === 'number'); // numbersOnly: number[]

3. reduce 메소드의 활용

reduce 메소드를 사용할 때 초기값의 타입과 콜백 함수에서 반환하는 값을 활용하여 최종적인 타입을 정확히 추론할 수 있습니다.

const words = ['apple', 'banana', 'grape', 'orange'];
const wordLengthMap = words.reduce((acc, word) => ({ ...acc, [word]: word.length }), {} as Record<string, number>); // wordLengthMap: Record<string, number>

이러한 팁을 활용하여 TypeScript를 더욱 효율적으로 활용하고, 코드의 안정성을 높일 수 있습니다. 배열 처리 로직을 개발할 때 이러한 메소드를 적절히 사용하여 타입 추론을 최적화하는 것이 중요합니다.