T extends null | undefined ? never : T
distributive conditional
조건부 타입은 유니온 멤버를 하나씩 검사하고, 결과 유니온에서
never를 제거해 최종 타입을 만듭니다.
T extends null | undefined ? never : T
남기는 타입은 string입니다.
남기는 타입은 number입니다.
제거 대상이므로 never가 됩니다.
제거 대상이므로 never가 됩니다.
string | number | never는 string | number로
정리됩니다.
참 분기에 T를 두면 조건에 맞는 멤버만 남깁니다.
null과 undefined를 제외하는 대표적인
필터입니다.