티스토리 뷰

타입스크립트 제네릭은 호출하는 시점에 타입을 정의하는 것을 의미한다.

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

T라는 것은 타입의 줄임말이며 아직 타입이 정의되지 않은 상태 입니다. 아래처럼 함수를 호출 할 때 타입을 정의 할 수 있음

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

logText<string>("안녕하세요);
logText<number>(10);
logText<boolean>(true);

또한 인터페이스에서 제네릭을 사용하므로써 코드를 상당히 줄일 수 있는 장점도 있다.

제네릭의 타입제한 ㅌ타입을 무한정으로 받아버리면 이 역시 나중에 코드분석을 하기 어려워 진다. 딱 필요한 타입만 받게끔 미리 설정을 해 둠으로써 추후에 복기를 했을 때 까먹지 않고 바로 이해할 수 있다.

extends, extends keyof 등의 키워드를 이용하여 타입을 제한이 가능하다.