TypeScript - 제네릭(Generic)

임성준·2022년 6월 27일
0
post-thumbnail

제네릭(Generic)

제네릭은 어떠한 클래스 혹은 함수에서 사용할 타입을 그 함수나 클래스를 사용할 때 결정하는 프로그래밍 기법을 말한다. Java나 C++ 등의 정적 타입 언어에서는 함수 및 클래스를 선언하는 시점에서 매개변수 혹은 리턴 타입을 정의해야하기 때문에 기본적으로는 특정 타입을 위해 만들어진 클래스나 함수를 다른 타입을 위해 재사용할 수가 없다. 때문에 제네릭을 통해 함수와 클래스의 범용적인 사용을 가능케 한다.

  • 개인 정리 :
    인자에 따라 return 타입이 정해진다.
    모든타입을 인자로 받으면서 return 타입을 예측할 수 있다.

사용 🕹

1️⃣   기본 Generic 타입

function getGeneric<MyType>(arg: MyType): MyType {
  return arg;
}
const result1 = getGeneric(3); // return 3 : number
const reuslt2 = getGeneric("안녕"); // return "안녕" : stirng
const reuslt3 = getGeneric(true); // return true : boolean

2️⃣   Generic 배열에 사용

function getGenericReverse<MyType1, MyType2, MyType3> (arg1: MyType1, arg2: MyType2, arg3: MyType3): [MyType3, MyType2, MyType1] {
  return [arg1, arg2, arg3];
}
const result = getGenericReverse("철수", "다람쥐초등학교", 8);
// return  ["철수" : string, "다람쥐초등학교" : string, 8 : number]

3️⃣   Generic 배열에 사용(축약)

function getGenericReverseT<T1, T2, T3>(arg1: T1, arg2: T2, arg3: T3): [T3, T2, T1] {
  return [arg1, arg2, arg3];
}
const result = getGenericReverseT("철수", "다람쥐초등학교", 8);
// return  ["철수" : string, "다람쥐초등학교" : string, 8 : number]

4️⃣   Generic 배열에 사용(축약2)

function getGenericReverseTUV<T, U, V>(arg1: T, arg2: U, arg3: V): [V, U, T] {
  return [arg1, arg2, arg3];
}
const result = getGenericReverseTUV("철수", "다람쥐초등학교", 8);
// return  ["철수" : string, "다람쥐초등학교" : string, 8 : number]

참조

profile
오늘도 공부 📖🌙

0개의 댓글

관련 채용 정보