TypeScript

제네릭 유틸리티 함수 구현

제네릭 유틸리티 함수의 핵심은 입력 값의 구조와 반환 타입의 관계를 잃지 않는 것입니다. `keyof`, indexed access, type predicate를 함께 쓰면 객체 속성 추출, 병합, null 제거 같은 반복 로직도 타입 정보를 보존한 채 하나의 함수로 묶을 수 있습니다.

제네릭 유틸리티 함수가 객체 속성 이름과 값 타입의 관계를 어떻게 보존하는지 확인합니다.

1

특정 속성을 추출하는 pluck 함수

객체 배열에서 특정 속성 값들만 뽑아내 새로운 배열을 만드는 함수는 `K extends keyof T` 제약을 걸어야 속성 이름과 반환 배열의 값 타입이 함께 보존됩니다.

제네릭 유틸리티 함수
2

두 객체를 병합하는 merge 함수

두 객체를 병합할 때는 양쪽 속성이 반환 타입에 모두 남도록 교차 타입이나 spread 결과 타입을 명확히 표현합니다.

속성 이름들 중 하나
3

null 또는 undefined가 아닌 값만 필터링하는 함수

배열에서 null 또는 undefined를 제거할 때 type predicate를 사용하면 필터링 뒤 요소 타입도 함께 좁아집니다.

제약 조건