TypeScript's distributive conditional types allow you to 'loop' over union type members individually. When a type parameter appears directly on the left side of `extends`, TypeScript distributes the conditional across each union member. A practical example shows how `StrictArray<T> = T extends unknown ? T[] : never` transforms `User | Admin | SuperAdmin` into `User[] | Admin[] | SuperAdmin[]` rather than `(User | Admin | SuperAdmin)[]`, using a dummy conditional to activate distributivity.

3m read timeFrom tejasbubane.github.io
Post cover image
Table of contents
UnionsGenericsConditional TypesDistributive Conditional Types
598 Impressions