타입스크립트 제네릭이란 c#,java등의 컴퓨터 언어에서 재사용성이 높은 컴포넌트를 만들 때 자주 활용되는 특징임. 특히나 한가지 타입 보다는 여러 타입에서 동작하는 컴포넌트를 생성하는데 사용이됨
즉, 제네릭이란 타입을 마치 함수의 파라미터처럼 사용하는 것을 의미함!!
function getText(text) {
return text;
}
위 함수는 text라는 매개변수에 값을 넘겨받아 text를 반환
다른 값이 들어가더라도 그대로 반환함
제네릭 기본문법
함수 안에서 사용할 타입을 형태로 넘겨줌
function getText<T>(text: T): T {
return text;
}
// 1. 문자/숫자/불린 타입
const getPrimitive = (arg1: string, arg2: number, arg3: boolean): [boolean, number, string] => {
return [arg3, arg2, arg1];
};
const result = getPrimitive("철수", 123, true);
Generic Type은 우리가 함수를 만들어서 제공해 줄 때 안전하고 확장성 높은 코드 사용을 위해 많이 사용함
============================================================
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);
============================================================
unknown 타입 any 타입처럼 모든 타입이 들어갈 수는 있지만, 아직은 어느 타입을 사용할지 모를때 사용합니다.
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);
============================================================
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);
배포할 라이브러리 개발시
사내 라이브러리 사용시 등등
참고 : 노션 수업자료