[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
함수 내에서 해당 필터링에 적합한 타입으로 자동으로 참조가 유도되어 컴파일러가 타입을 올바르게 추론할 수 있습니다.
결론
타입 가드는 타입스크립트에서 안정성을 높이고 가독성을 향상시키는 데 유용한 기능입니다. 컬렉션 필터링과 같은 상황에서 활용하면 코드를 더욱 견고하고 안전하게 작성할 수 있습니다.
타입 가드에 대해 더 알아보려면 타입스크립트 공식 문서를 참고하세요.