Conditional types in TypeScript are a way to select a type based on a condition. They allow you to write a type that dynamically chooses a type based on the types of its inputs. Conditional types are declared using a combination of the
infer keyword and a type that tests a condition and selects a type based on the result of the test.
For example, the following is a conditional type that takes two types and returns the type of the first argument if it extends the second argument, and the type of the second argument otherwise:
type Extends<T, U> = T extends U ? T : U; type A = Extends<string, any>; // type A is 'string' type B = Extends<any, string>; // type B is 'string'
In this example, the Extends conditional type takes two types T and U and returns the type of the first argument
T if it extends the second argument
U, and the type of the second argument
U otherwise. The T extends
U syntax is used to test whether
T extends U, and the
? T : U syntax is used to select the type
T if the test passes and the type
Learn more from the following links: