distributive conditional

never 필터링 흐름

조건부 타입은 유니온 멤버를 하나씩 검사하고, 결과 유니온에서 never를 제거해 최종 타입을 만듭니다.

Exclude<T, null | undefined> 규칙

T extends null | undefined ? never : T

string

조건 불일치

남기는 타입은 string입니다.

number

조건 불일치

남기는 타입은 number입니다.

null

조건 일치

제거 대상이므로 never가 됩니다.

undefined

조건 일치

제거 대상이므로 never가 됩니다.

최종 결과

string | number | neverstring | number로 정리됩니다.

Extract

참 분기에 T를 두면 조건에 맞는 멤버만 남깁니다.

NonNullable

nullundefined를 제외하는 대표적인 필터입니다.