분산 여부
T가 naked type parameter이면 유니언의 각 멤버에 조건이 따로 적용됩니다.
조건부 타입은 삼항 연산자처럼 보이지만 유니언 분산, infer, never 처리 때문에 결과가 크게 달라집니다.
T가 naked type parameter이면 유니언의 각 멤버에 조건이 따로 적용됩니다.
infer는 함수 반환, 배열 원소, Promise 내부처럼 꺼낼 위치를 정확히 표시합니다.
조건을 만족하지 않는 분기는 never나 fallback 타입으로 내려가 호출부 결과를 바꿉니다.
분산을 막아야 하면 [T] extends [U] 형태를 검토합니다.
infer로 꺼낸 타입이 true 분기 안에서만 쓰이는지 봅니다.
false 분기의 타입이 호출부에서 의미 있는지 확인합니다.
유니언 입력을 넣었을 때 예상 결과가 나오는지 테스트합니다.