제네릭 최소 제약은 함수 내부에서 실제로 쓰는 능력만 요구한다

length만 쓰는 함수라면 배열 전체가 아니라 length 속성만 요구하면 된다.

질문판정
내부에서 length를 쓰는가?T extends { length: number }
key 접근을 하는가?K extends keyof T
생성자를 호출하는가?new (...args) => T 형태로 제한
반환 타입을 보존해야 하는가?입력 T와 반환 T의 관계 유지
신호해석
최소 조건함수 본문이 실제로 사용하는 능력
과잉 조건호출 가능한 타입을 불필요하게 줄임
판단구현에서 읽는 멤버를 기준으로 bound를 정한다

핵심 구현에서 읽는 멤버를 기준으로 bound를 정한다