pluck
K extends keyof T로 존재하는 키만 받고 결과를
T[K][]로 고정한다.
같은 제네릭 문법이라도 키 접근, 객체 병합, null 제거, 조건부 반환은 서로 다른 증명 장치를 사용한다.
proof to return
K extends keyof T로 존재하는 키만 받고 결과를
T[K][]로 고정한다.
T extends object와 U extends object가
스프레드 가능성을 보장한다.
item is NonNullable<T>가 filter 뒤 배열 요소
타입을 좁힌다.
입력 타입에 따라 반환 타입이 달라질 때 조건부 타입으로 결과를 표현한다.
단순한 관계는 제약 조건으로 표현하고, 분기가 복잡하거나
as any가 늘어나면 명시적 오버로드가 더 읽기 쉽다.