본문 바로가기

React/React with Typescript

Typescript - Generics

Generics 는 타입스크립트에서 함수, 클래스, interface, type alias 등을 사용할 때 여러종류의 타입에 대해 호환을 맞춰야 하는 상황에서 사용하는 문법이다. 사용 할 때는 <T>라는 표현을 사용하게 된다.

 

위를 보면 a에 어떤 값이 들어오던, b에 어떤 값이 들어오던, <T1, T2>를 통해 유추를 한 후, 그것에 관련된 값을 다시 리턴한다. 즉 parameter 타입을 any로 가져오는 것처럼 실행시킬 수 있는 것인데, any와 generics 의 차이점은 parameter를 any로 넣는다면 다음에 그 함수를 쓰거나 그 함수의 결과값을 쓰거나 할 때 any로 떠서 헷갈릴 수 있는데, generics를 쓴다면 이미 parameter로 예를 들어 string이 들어간 상태라면, 추후에 문자열이 들어간 것을 유추시킬 수 있다는 것이다.

interface와 type alias 에서도 쓸 수 있다.

위와 같이 T 타입의 리스트가 들어가는 interface를 만들어 놓았다. items는 string 타입의 리스트가 들어가므로, 오류가 나지 않는다. 만약 이를 어기고 숫자배열을 넣는다면 오류가 난다.

 

클래스에도 선언이 가능하다. Queue라는 클래스에 T라는 타입을 넣어주었고, 그의 list에는 T의 배열이 들어가니, enqueue 함수를 실행할 때는 아이템으로 T의 아이템이 들어가야한다. 따라서 위 코드는 오류가 나지 않는다.

'React > React with Typescript' 카테고리의 다른 글

React & Typescript - 시작  (0) 2020.07.08
Typescript - interface, type alias  (0) 2020.07.08
Typescript 기초  (0) 2020.07.07