Generic Utility

pluck은 객체 키와 반환 타입을 제네릭으로 연결하는 대표 예제다

키 이름을 문자열로 받더라도 keyof와 제네릭을 쓰면 존재하지 않는 속성 접근을 컴파일 단계에서 막을 수 있다.

타입 연결 구조

keyof

객체 타입 T

입력 객체 전체의 형태를 제네릭 타입으로 받는다.

키 타입 K

K extends keyof T로 실제 존재하는 키만 허용한다.

반환 타입

T[K]를 사용해 선택한 키에 맞는 값 타입을 그대로 돌려준다.

안전한 재사용

여러 객체에서 같은 함수를 쓰면서도 타입 검사를 유지한다.

objectkeyofpickvalue
타입 조건

제네릭 유틸리티는 값을 유연하게 받기 위해 타입 정보를 버리는 것이 아니라, 입력과 출력의 관계를 보존하는 방식이다.