Utility function balance

제네릭 유틸리티는 호출부 단순성을 지켜야 한다

pluck, merge, compact 같은 함수는 타입 안전성을 높이되 호출자가 타입 인자를 직접 맞추느라 지치지 않아야 합니다.

01

키 제한

keyof T와 K extends keyof T를 쓰면 존재하지 않는 속성 접근을 호출 시점에 막습니다.

02

병합 결과

두 객체를 합치는 함수는 반환 타입이 어느 쪽 속성을 보존하는지 분명해야 합니다.

03

타입 가드

compact처럼 값을 걸러내는 함수는 런타임 조건과 반환 타입 좁히기가 같은 기준을 써야 합니다.

1

문제

함수가 해결하는 반복 패턴이 실제로 공통인지 먼저 확인합니다.

2

타입 인자

호출자가 명시하지 않아도 추론되는지 봅니다.

3

단언

as any가 필요한 지점을 줄이거나 격리합니다.

4

호출부

함수 사용 코드가 원래 코드보다 읽기 쉬운지 검토합니다.