제네릭은 다양한 타입을 지원하면서도 타입 안정성을 제공한다. 제네릭을 사용하면 코드의 유연성이 크게 향상되며, 코드의 재사용성을 높이고 유지보수성을 개선할 수 있다.
다음은 클래스의 인스턴스에서 어떤 타입의 데이터를 저장할건지 선택하고 해당 데이터 타입만 사용하는 클래스를 구현한 코드이다.
만약 아래와 같이 구현할 경우 매서드를 호출할때마다 윈시형 타입이라면 어떠한 타입이라도 data 속성에 추가 및 삭제할 수 있으며, 기능을 정상적으로 구현하기 위해서는 typeof로 타입체크를 해야하기 때문에 코드의 가독성도 많이 떨어질 것이다.
메서드 호출 시, 파라미터 타입의 유연성을 가지고 싶다면 유니언 타입, 하나의 타입으로 고정하고 싶으면 제네릭 타입을 사용하면 된다.
Generic 타입은 함수나 클래스의 선언 시점이 아닌, 사용 시점에 타입을 선언할 수 있는 방법을 제공한다.
출처: https://inpa.tistory.com/entry/TS-📘-타입스크립트-Generic-타입-정복하기 [Inpa Dev 👨💻:티스토리]