Tuesday, 27 April, 2021 UTC


In this lesson, we're going to learn about conditional types, a powerful feature of TypeScript's type system. Conditional types let us express non-uniform type mappings, that is, type transformations that differ depending on a condition. A conditional type describes a type relationship test and selects one of two possible types, depending on the outcome of that test. It always has the form `T extends U ? X : Y`, which makes conditional types look similar to conditional expressions in JavaScript. We're going to use a conditional type to implement a `NonNullish` helper type. This type is identical to the `NonNullable` helper type which is defined in the core type declaration files that ship with the TypeScript compiler. Step by step, we're going to resolve an application of the `NonNullish` type to understand how conditional types are being evaluated. ## Additional Reading - [Conditional Types in TypeScript](https://mariusschulz.com/blog/conditional-types-in-typescript)