type A = "a" | "b";
type B = "c" | "d";
type C<Type extends A> = Type;
type D<Type extends B> = Type;
type Auto<Type extends (A|B)> = Type extends A ? C<Type> : D<Type>; //It throws error!
//Type 'Type' does not satisfy the constraint 'B'.
Auto type has generic. Type is A|B, same as "a" | "b" | "c" | "d". And A is equal to "a" | "b". But why I can't use Type extends A ? C<Type> : D<Type>? D<Type> throws error "Type 'Type' does not satisfy the constraint 'B'.".