타입스크립트에서 제네릭(Generics)은 재사용 가능한 컴포넌트를 만드는 데 사용되는 강력한 도구입니다. 제네릭을 이용하면 타입이나 인터페이스를 선언할 때 미리 정의된 타입이나 값에 의존하지 않고 재사용 가능한 코드를 작성할 수 있습니다.
이번 글에서는 제네릭을 활용한 인터페이스 선언 및 타입 추론 방법에 대해 살펴보겠습니다.
제네릭 인터페이스란?
제네릭 인터페이스는 특정 타입이나 값에 의존하지 않고 재사용 가능한 컴포넌트를 만들기 위해 사용됩니다. 예를 들어, 배열이나 객체와 같은 데이터 구조를 다룰 때 특정 타입에 의존하지 않고 재사용성을 높일 수 있습니다.
interface Pair<T, U> {
first: T;
second: U;
}
const pair1: Pair<number, string> = { first: 1, second: 'hello' };
const pair2: Pair<string, boolean> = { first: 'foo', second: true };
위 예제에서 Pair
인터페이스는 T
와 U
두 가지 제네릭 타입을 받아들입니다. 이를 통해 Pair
인터페이스를 사용할 때마다 다양한 타입을 지정하여 재사용할 수 있습니다.
제네릭 타입 추론
타입스크립트는 제네릭 타입을 추론하여 해당 변수 또는 함수의 타입을 결정합니다. 예를 들어, 아래의 예제에서 createPair
함수를 통해 타입을 추론하는 방법을 살펴봅시다.
function createPair<T, U>(first: T, second: U): Pair<T, U> {
return { first, second };
}
const newPair = createPair(3, 'typescript');
createPair
함수를 호출할 때 T
와 U
의 타입을 지정하지 않았지만, 타입스크립트는 전달된 인자를 기반으로 해당 타입을 추론합니다. 따라서 newPair
변수는 Pair<number, string>
타입으로 추론됩니다.
결론
제네릭을 이용한 인터페이스 선언과 타입 추론은 타입스크립트를 더욱 유연하고 재사용 가능한 코드를 작성하는 데 도움을 줍니다. 제네릭을 적재적소에 활용하여 강력한 타입 추론을 통해 보다 안전하고 확실한 코드를 작성할 수 있습니다.