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