[typescript] 제네릭 인터페이스를 이용한 타입 추론 방법

타입스크립트에서 제네릭(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 인터페이스는 TU 두 가지 제네릭 타입을 받아들입니다. 이를 통해 Pair 인터페이스를 사용할 때마다 다양한 타입을 지정하여 재사용할 수 있습니다.

제네릭 타입 추론

타입스크립트는 제네릭 타입을 추론하여 해당 변수 또는 함수의 타입을 결정합니다. 예를 들어, 아래의 예제에서 createPair 함수를 통해 타입을 추론하는 방법을 살펴봅시다.

function createPair<T, U>(first: T, second: U): Pair<T, U> {
  return { first, second };
}

const newPair = createPair(3, 'typescript');

createPair 함수를 호출할 때 TU의 타입을 지정하지 않았지만, 타입스크립트는 전달된 인자를 기반으로 해당 타입을 추론합니다. 따라서 newPair 변수는 Pair<number, string> 타입으로 추론됩니다.

결론

제네릭을 이용한 인터페이스 선언과 타입 추론은 타입스크립트를 더욱 유연하고 재사용 가능한 코드를 작성하는 데 도움을 줍니다. 제네릭을 적재적소에 활용하여 강력한 타입 추론을 통해 보다 안전하고 확실한 코드를 작성할 수 있습니다.