[typescript] 타입 가드를 사용한 배열 원소 검사

타입 가드란 무엇인가요?

타입 가드는 TypeScript에서 자주 사용되는 개념 중 하나로, 런타임에서 값의 타입을 검사하여 해당 타입에 맞추어 특정한 동작을 수행하는 기술을 말합니다. 이를 통해 코드의 안전성과 가독성을 높일 수 있습니다.

배열 원소를 검사하는 방법

배열에서 특정 타입의 원소만 필터링하려면, Array.filter 메서드를 사용하면 됩니다. 그러나 TypeScript에서는 배열의 타입을 정의할 수 있기 때문에, 더욱 강력하고 안전한 방법을 사용할 수 있습니다.

function filterByType<T>(arr: T[], type: string): T[] {
  return arr.filter((item) => typeof item === type);
}

위의 예제 코드에서는 filterByType 함수를 사용하여 배열 내에서 특정 타입의 원소만 필터링하는 방법을 보여줍니다.

예제 코드

type Person = {
  name: string;
  age: number;
};

function filterByType<T>(arr: T[], type: string): T[] {
  return arr.filter((item) => typeof item === type);
}

const list: (string | number | Person)[] = ['john', 25, { name: 'alice', age: 30 }];

const filteredStrings = filterByType(list, 'string'); // ['john']
const filteredNumbers = filterByType(list, 'number'); // [25]
const filteredPersons = filterByType(list, 'object'); // [{ name: 'alice', age: 30 }]

위의 예제 코드에서는 filterByType 함수를 사용하여 문자열, 숫자, 객체 세 가지 타입으로 배열을 필터링하는 방법을 보여줍니다.

결론

타입 가드를 사용하여 TypeScript에서 배열 원소를 타입에 따라 안전하게 필터링하는 방법을 살펴보았습니다. 이를 통해 코드의 안정성과 가독성을 높일 수 있으며, 유지보수성을 향상시킬 수 있습니다.