Def. A conditional type with a checked naked type parameter T is called distributive conditional types.
Example:
// given U, X and Y
type DistributiveConditionalType<T> = T extends U ? X : Y;
Distributive conditional types are automatically distributed over union types during instantiation.
Example:
DistributiveConditionalType<A | B | C>
= (A | B | C) extends U ? X : Y
= (A extends U ? X : Y) | (B extends U ? X : Y) | (C extends U ? X : Y)