Generic Constraint

Generic 제약과 narrowing 흐름

제약 없는 T는 어떤 멤버도 보장하지 않지만, T extends HasLength처럼 조건을 걸면 접근 가능한 표면이 열린다.

제네릭 타입에 안전한 조건을 붙이는 방식

constraint

제약 없음

T는 어떤 형태든 올 수 있어 length 같은 멤버를 보장하지 않는다.

형태 계약

extends { length: number }로 필요한 멤버만 요구한다.

호출 검증

조건을 만족하지 않는 인자는 컴파일 단계에서 거부된다.

타입 보존

입력 타입의 구체성은 유지하면서 안전한 멤버 접근을 허용한다.

Textends Shapemember access호출 점검return T
최소 제약

extends 제약은 타입을 하나로 고정하는 것이 아니라 최소 조건을 요구하는 장치다. 재사용성과 안전성을 같이 얻는다.