Type Manipulation, Distributive Conditional Types (tipos condicionales distributivos) Type Manipulation, Distributive Conditional Types (tipos condicionales distributivos)

🥇 Type Manipulation, Distributive Conditional Types (tipos condicionales distributivos)

Cuando los tipos condicionales actúan sobre generics se convierten en distributives (distributivos) si se les proporciona una union. Por ejemplo tomemos el siguiente ejemplo.

type ConvertirEnArreglo<T> = T extends any ? T[] : never;

type T1 = ConvertirEnArreglo<string | number>
// type = string[] | number[]

Por lo general el efecto distributivo es el esperado, sin embargo si se desea prevenir este comportamiento podemos encerrar cada elemento a ambos lados de la expresión extends.

type ConvertirEnArreglo2<T> = [T] extends [any] ? T[] : never;

type T2 = ConvertirEnArreglo2<string | number>;
// type = (string | number)[]
Type Manipulation, Inferencia en Conditional Types Type Manipulation, Mapped Types (tipos basados en mapas)
comments powered by Disqus