Coerce a type while preserving assignability.
Source type
Target type
Keeps the source type if it is assignable to the target type; otherwise, resolves to the target type.
type A = Coerce< string, string | number >; // stringtype B = Coerce< number, string | number >; // numbertype C = Coerce< boolean, string | number >; // string | number Copy
type A = Coerce< string, string | number >; // stringtype B = Coerce< number, string | number >; // numbertype C = Coerce< boolean, string | number >; // string | number
Coerce a type while preserving assignability.