제네릭을 사용하여 타입 간의 종속성 없이 코드 재사용성을 높이는 방법을 설명함
API 응답 구조를 제네릭으로 통합하여 코드 중복을 제거하고 유지보수성을 향상시킴
공변성, 반공변성, 불변성 개념을 통해 타입스크립트의 타입 안전성과 실용성의 균형을 분석
제네릭은 타입 변수를 사용하여 여러 타입에 공통적으로 적용되는 로직을 구현한다. 구체적으로, getFirst<T>(items: T[]): T | undefined와 같이 타입 자체를 매개변수로 받아, 타입 정보 보존을 통해 타입 안전성을 확보한다. 따라서, 코드 중복을 피하고, 다양한 타입에 대해 일관된 동작을 보장한다.
타입스크립트는 공변성, 반공변성, 불변성을 통해 타입 간의 관계를 정의한다. 배열의 공변성은 실용성을 위해 허용되지만, 쓰기 연산 시 타입 안전성을 해칠 수 있다. 반면, 함수 타입의 반공변성은 매개변수 타입의 서브타입 관계를 뒤집어 을 확보한다. 따라서, 옵션을 통해 더 엄격한 타입 검사를 수행한다.
올리브영 API 응답 구조를 제네릭으로 구현하여 코드 중복을 제거하고, 유지보수성을 향상시켰다. 구체적으로, ApiResponse<T> 인터페이스를 통해 모든 API 응답 타입을 관리한다. 따라서, Partial, Pick, Omit과 같은 유틸리티 타입을 활용하여 타입 안전성을 유지하면서, 코드의 간결성을 확보한다.