Tipos condicionales (introducción) y distribución sobre uniones
Aprenda los tipos condicionales (T extends U ? X : Y) y cómo se distribuyen sobre uniones para crear una potente lógica a nivel de tipos.
Tipos condicionales (introducción) y distribución sobre uniones es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 2 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de TypeScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de TypeScript Academy incluye 3 lecciones en total.
Introducción
Objetivo: Utilizar tipos condicionales (T extends U ? X : Y) para ramificar en el nivel de tipos y comprender la distribución sobre uniones para obtener resultados precisos.
Condicional básico
Un tipo condicional devuelve uno de dos tipos según se cumpla o no T extends U.
type IsString<T> = T extends string ? true : false;
let a: IsString<string>; // true
let b: IsString<number>; // false
Distribución
Con un parámetro de tipo desnudo T, el condicional se ejecuta sobre cada miembro de la unión y después une los resultados.
type ToArray<T> = T extends any ? T[] : never;
type R1 = ToArray<string | number>; // string[] | number[]Detener la distribución
Envuelva T en una tupla (por ejemplo, [T]) para detener la distribución y tratar la unión como un todo.
type ToArrayNoDistrib<T> = [T] extends [any] ? T[] : never;
type R2 = ToArrayNoDistrib<string | number>; // (string | number)[]Exclude práctico
Muchos tipos utilitarios dependen de la distribución (por ejemplo, Exclude y Extract). Puede crear fácilmente sus propias variantes.
type MyExclude<T, U> = T extends U ? never : T;
type R3 = MyExclude<"a" | "b" | "c", "b">; // "a" | "c"Consejos
Consejos:
- La distribución solo ocurre con un parámetro de tipo desnudo a la izquierda de
extends. - Envuélvalo en una tupla para desactivarla.
- Pruebe con ejemplos pequeños para confirmar su intuición.
Comprobación de la distribución
Comprobación rápida: ¿Por qué los tipos condicionales se distribuyen sobre las uniones?
Resumen
Resumen: Utilice tipos condicionales para ramificar en el nivel de tipos. Comprenda cuándo los resultados se distribuyen sobre las uniones y cómo desactivar la distribución envolviéndolos en una tupla.
Preguntas frecuentes
¿La lección «Tipos condicionales (introducción) y distribución sobre uniones» es gratis?
Sí — el texto completo de «Tipos condicionales (introducción) y distribución sobre uniones» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de TypeScript Academy, actualiza a CoddyKit PRO. El curso de TypeScript Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Tipos condicionales (introducción) y distribución sobre uniones»?
Aprenda los tipos condicionales (T extends U ? X : Y) y cómo se distribuyen sobre uniones para crear una potente lógica a nivel de tipos. Practicas TypeScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar TypeScript Academy?
No se requiere experiencia previa. TypeScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 3.
¿Cuánto tiempo toma la lección «Tipos condicionales (introducción) y distribución sobre uniones»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de TypeScript Academy?
Sí. Cada lección de TypeScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Interfaces y alias de tipo genéricos
- Tipos condicionales (introducción) y distribución sobre uniones
- Patrones reutilizables para modelos de datos