generic constraint

제네릭 제약은 자유로운 타입에 필요한 조건만 더합니다

extends, keyof, class 타입, typeof를 활용하면 제네릭의 재사용성은 유지하면서 함수가 실제로 쓰는 능력만 요구할 수 있습니다.

extends

최소 구조 요구

T가 특정 속성이나 메서드를 가진 값이어야 할 때 구조 제약을 둡니다.

T extends Lengthwise
keyof

키 관계 고정

객체와 키를 함께 받을 때 실제 키만 허용하도록 연결합니다.

K extends keyof T
class 타입

생성 가능성

new로 만들 수 있는 타입을 받아 인스턴스 생성 패턴을 안전하게 표현합니다.

new () => T
추론 보존

구체 타입 유지

제약을 걸어도 호출 시점의 구체 타입 정보는 가능한 한 유지합니다.

T