다음과 같이 여러 타입을 처리하고 싶은 경우가 있을 수 있다.
유니온 타입을 활용하면 any 타입을 사용하지 않고 다중 타입을 처리할 수 있다. 하지만, 둘 다 공통적으로 다음과 같은 문제가 발생한다.
두 방식 모두 반환값으로 다중 타입이 가능하지만 특정 타입에서 동작 가능한 메서드의 사용이 불가능하다.
이를 해결하기 위해 우리는 다음과 같이 타입 좁히기를 활용할 수 있다.
하지만 이번에 소개할 제네릭 타입을 사용하면 훨씬 직관적이고 가독성 좋은 코드로 바꿀 수 있다.
위 코드와 같이 함수명 뒤에 꺽쇠로 타입 변수를 정의해주고 반환 타입에도 같은 타입 변수를 넣어준다.
현재 코드의 경우 매개변수가 그대로 반환되는 코드이므로 매개변수에도 동일한 타입 변수를 넣었다.
이렇게 제네릭 타입을 정의하자 들어오는 매개변수에 따라 값이 할당된 변수의 타입이 고정되면서 특정 타입에서만 동작하는 메서드를 사용할 수 있는 것을 확인할 수 있다.
또한, 타입 변수는 꼭 대문자 T가 아니어도 된다. 하지만, 대체적으로 T로 사용한다는 것을 기억하면 좋겠다.
참고자료
한 입 크기로 잘라먹는 타입스크립트(TypeScript)
한 입 크기로 잘라먹는 타입스크립트(TypeScript) 강의 | 이정환 Winterlood - 인프런
이정환 Winterlood | 문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙🏻♀️로 만들어드립니다., 프론
www.inflearn.com
'언어 > TypeScript' 카테고리의 다른 글
제네릭 인터페이스 (0) | 2024.09.13 |
---|---|
제네릭 타입 응용 (0) | 2024.09.12 |
인터페이스와 클래스 (0) | 2024.08.30 |
접근 제어자 (0) | 2024.08.29 |
클래스 (0) | 2024.08.29 |