Typescript Generic

오우·2023년 2월 7일
0

타입스크립트 제네릭이란 c#,java등의 컴퓨터 언어에서 재사용성이 높은 컴포넌트를 만들 때 자주 활용되는 특징임. 특히나 한가지 타입 보다는 여러 타입에서 동작하는 컴포넌트를 생성하는데 사용이됨

즉, 제네릭이란 타입을 마치 함수의 파라미터처럼 사용하는 것을 의미함!!

 function getText(text) {
  return text;
}

위 함수는 text라는 매개변수에 값을 넘겨받아 text를 반환
다른 값이 들어가더라도 그대로 반환함

제네릭 기본문법
함수 안에서 사용할 타입을 형태로 넘겨줌

function getText<T>(text: T): T {
  return text;
}
  1. 문자 / 숫자 / 불린 타입
// 1. 문자/숫자/불린 타입
const getPrimitive = (arg1: string, arg2: number, arg3: boolean): [boolean, number, string] => {
  return [arg3, arg2, arg1];
};
const result = getPrimitive("철수", 123, true);
  
 Generic Type은 우리가 함수를 만들어서 제공해 줄 때 안전하고 확장성 높은 코드 사용을 위해 많이 사용함

============================================================

  1. any 타입 any는 모든 타입을 열어놓은 자바스크립트와 같습니다.

    // 2. any 타입 (그냥 자바스크립트랑 같음)
    const getAny = (arg1: any, arg2: any, arg3: any): [any, any, any] => {
    console.log(arg1 + 100); // any는 아무거나 다 됨
    return [arg3, arg2, arg1];
    };
    const result = getAny("철수", 123, true);

    ============================================================

  2. unknown 타입 any 타입처럼 모든 타입이 들어갈 수는 있지만, 아직은 어느 타입을 사용할지 모를때 사용합니다.

  3. unknown 타입
    const getUnknown = (arg1: unknown, arg2: unknown, arg3: unknown): [unknown, unknown, unknown] => {
    // console.log(arg1 + 100); // 사용할 수 없음
    if (typeof arg1 === "number") console.log(arg1 + 100); // unknwon은 사용할 때, 타입을 가정하여 사용해야 함
    return [arg3, arg2, arg1];
    };
    const result = getUnknown("철수", 123, true);
    ============================================================

  4. generic 타입 - 1

: any와 unknown 타입처럼 입력하는 타입을 아무거나 넣을 수 있는 타입이 존재합니다.
/ 4. generic 타입 - 1
function getGeneric<MyType1, MyType2, MyType3>(arg1: MyType1, arg2: MyType2, arg3: MyType3): [MyType3, MyType2, MyType1] {
return [arg3, arg2, arg1];
}
const result = getGeneric("철수", 123, true);

  1. 배포할 라이브러리 개발시

  2. 사내 라이브러리 사용시 등등

    참고 : 노션 수업자료

profile
나는 개발자, 나는 개발자라구.

0개의 댓글