[typescript] 타입 가드를 사용한 컬렉션 필터링

타입스크립트에서는 타입 가드를 사용하여 변수의 타입을 좁히고, 이를 활용하여 컬렉션을 필터링하는 방법을 제공합니다. 이를 통해 코드의 가독성과 안정성을 높일 수 있습니다.

타입 가드란 무엇인가요?

타입 가드는 특정 타입의 변수인지를 검사하고, 해당 변수의 타입을 좁혀나가는 것을 말합니다. 이를 통해 런타임에서 발생할 수 있는 에러를 줄이고, 코드의 안정성을 확보할 수 있습니다.

배열 필터링 예시

interface Animal {
  name: string;
  age: number;
}

function isOlderThan5(animal: Animal): boolean {
  return animal.age > 5;
}

function filterOldAnimals(animals: Animal[]): Animal[] {
  return animals.filter(isOlderThan5);
}

위 예시에서 filterOldAnimals 함수는 isOlderThan5 함수를 사용하여 배열을 필터링합니다. 하지만, filter 함수는 타입을 좁히지 않기 때문에 해당 코드는 컴파일 오류를 발생시킬 수 있습니다.

타입 가드를 활용한 필터링

function isOldAnimal(animal: Animal): animal is { age: number } {
  return animal.age > 5;
}

function filterOldAnimals(animals: Animal[]): Animal[] {
  return animals.filter(isOldAnimal);
}

isOldAnimal 함수에서 animal is { age: number } 형태로 타입을 검사하여 타입 가드를 사용했습니다. 이렇게 하면 filterOldAnimals 함수 내에서 해당 필터링에 적합한 타입으로 자동으로 참조가 유도되어 컴파일러가 타입을 올바르게 추론할 수 있습니다.

결론

타입 가드는 타입스크립트에서 안정성을 높이고 가독성을 향상시키는 데 유용한 기능입니다. 컬렉션 필터링과 같은 상황에서 활용하면 코드를 더욱 견고하고 안전하게 작성할 수 있습니다.

타입 가드에 대해 더 알아보려면 타입스크립트 공식 문서를 참고하세요.