generic - 1 기본 선언 사용

YOUNGJOO-YOON·2021년 6월 21일
0

typeScript

목록 보기
5/65

TOC

  1. generic 기본 선언

  2. 사용

generic 기본 선언

generic이란 무엇인가?

항시 드는 생각이지만 프로그래밍에서 명명은 정말 중요하기에
이 언어를 만드는 기관들은 이름을 참 잘지어준다.

generic은 말 그대로 보편적인 뜻을 가진다.

함수의 보편성을 만들어주는 variable한 타입을 가리킨다.

코드를 보며 generic의 진가를 알아보자.

function identity(arg:number):number{
	return arg;
}
// return type = number
// 만약 (arg:any):any의 경우 return type = any

위 코드는 숫자를 받고 숫자를 리턴하는 것 밖에 못한다.

function identity2<T>(arg:T):T{
	return arg;
}

느낌이 팍 온다면 좋겠다. 소괄호 앞은 generic을 사용할 것인지를 선언하는 선언부다.
인자에 선언한 generic 인자를 넣어주고 return 값은 선택이지만 확실한게 좋으니
넣어주도록 하자.

위 코드는 이제 이런 뜻이 된다. identity(1)은 generic변수가 유저의 입력값의 타입을
스냅샷으로 기억하고 그 값의 타입을 T에 치환해 대입해준다는 뜻이 된다.

이로써 함수의 확장성은 매우 커졌다고 할 수 있다.

타입을 확인해보면 유저가 입력한 타입을 그대로 반환해준다는 것을 알 수 있다.

2. 사용

생성해놓은 generic 함수를 사용해보자. 방법은 크게 두가지 방법으로

선언적 사용과 추론적 사용법이 있다.

function identity2<T>(arg:T):T{
	return arg;
}
console.log(identity2<string>('generic is good')); // 선언적 사용
console.log(identity2('svelt is good?')); // 추론적 사용

추론적 사용은 tsc가 arg값을 읽어 타입을 추론하고 generic에 대입하는 것이다.
보통 후자를 많이 사용하게 된다. tsc가 하는 일을 굳이 개발자가 할 필요는 없다는 것이
이유이다.

출처 typescriptlang

profile
이 블로그의 글은 제 생각을 정리한 글과 인터넷 어딘가에서 배운 것을 정리한 글입니다. 출처는 되도록 남기도록 하겠습니다. 수정 및 건의 오류 등이 있으면 언제든지 댓글 부탁드립니다.

0개의 댓글