제네릭(Generics)

LOCA·2023년 5월 25일
0

타입스크립트

목록 보기
1/1

제네릭(Generics)의 사전적 정의

제네릭은 C#, Java 등의 언어에서 재사용성이 높은 컴포넌트를 만들 때 자주 활용되는 특징입니다. 특히, 한가지 타입보다 여러 가지 타입에서 동작하는 컴포넌트를 생성하는데 사용됩니다.

제네릭의 한 줄 정의와 예시

function getText(text) {
  return text;
}

위 함수는 text라는 파라미터에 값을 넘겨 받아 text를 반환해줍니다. hi, 10, true 등 어떤 값이 들어가더라도 그대로 반환합니다.

getText('hi'); // 'hi'
getText(10); // 10
getText(true); // true

이 관점에서 제네릭을 한번 살펴보겠습니다.

function getText<T>(text: T): T {
  return text;
}

위 함수는 제네릭 기본 문법이 적용된 형태입니다. 이제 함수를 호출할 때 아래와 같이 함수 안에서 사용할 타입을 넘겨줄 수 있습니다.

getText<string>('hi');
getText<number>(10);
getText<boolean>(true);

위 코드 중 getText('hi')를 호출 했을 때 함수에서 제네릭이 어떻게 동작하는지 살펴보겠습니다.

function getText<string>(text: T): T {
  return text;
}

먼저 위 함수에서 제네릭 타입이 이 되는 이유는 getText() 함수를 호출할 때 제네릭(함수에서 사용할 타입) 값으로 string을 넘겼기 때문입니다.

getText<string>();

그리고 나서 함수의 인자로 hi 라는 값을 아래와 같이 넘기게 되면

getText<string>('hi');

getText 함수는 아래와 같이 타입을 정의한 것과 같습니다.

function getText<string>(text: string): string {
  return text;
}

위 함수는 입력 값의 타입이 string이면서 반환 값 타입도 string이어야 합니다.

profile
helloWorld

0개의 댓글