제약 없음
T는 어떤 형태든 올 수 있어 length 같은 멤버를 보장하지 않는다.
제약 없는 T는 어떤 멤버도 보장하지 않지만, T extends HasLength처럼 조건을 걸면 접근 가능한 표면이 열린다.
T는 어떤 형태든 올 수 있어 length 같은 멤버를 보장하지 않는다.
extends { length: number }로 필요한 멤버만 요구한다.
조건을 만족하지 않는 인자는 컴파일 단계에서 거부된다.
입력 타입의 구체성은 유지하면서 안전한 멤버 접근을 허용한다.
extends 제약은 타입을 하나로 고정하는 것이 아니라 최소 조건을 요구하는 장치다. 재사용성과 안전성을 같이 얻는다.