[TypeScript]: Generic

TypeScript - Generic

요즘 TypeScript를 공부중이다. Generic 타입이라는 것을 알게 되었는데

정확하게 모르겠어서 지금 이해한 부분만 간단하게 정리해 두려고 한다.

  • generic은 일부 언어(자바나 c#과 같은)에서 사용하고 있다고 한다.
  • 재사용 가능한 컴포넌트를 생성하는 유용한 도구라고 한다.
  • 데이터의 타입을 일반화한다(generalize)는 의미를 가진다고 한다.
  • 단일 타입이 아닌 다양한 타입에서 작동하는 것이 가능하다고 한다.

간단한 예시 이지만 이해에 조금 도움이 되었다.

function returnNum(something: number):number {
	return something;
}
function returnStr(something: string):string {
	return something;
}
function returnBool(something: boolean):boolean {
	return something;
}

함수의 기능은 같은데 매개변수와 반환값의 타입이 달라 쓸모없이 반복된다...
이럴때 사용하는게 generic 이라고 한다.

// 선언
function returnAny<T>(something: T): T {
  retunr something;
// 호출 : <> 안에는 인수의 타입을 명시(생략해도 컴파일러가 추론해줌)
const num = returnAny<number>(135682)
const str = returnAny<string>('우왕굿')
} // T는 Type의 약자로 관용적으로 쓰인다고 한다. 바꿔도 👍
  • any type은 함수의 반환 타입을 유추하기가 어렵고, 매개변수의 프로퍼티를 체킹하지 않는다. generic은 어떤 타입이 주어질지 모르기 때문에 사전에 문제가 될 수 있는 부분을 방지할 수 있다.

좋은 웹페이지 즐겨찾기