Conditional Types
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 U
otherwise.
Learn more from the following links: