Unions + narrowing: manejar estados sin bugs

Lectura
18 min~1 min lectura
Objetivo de la lección

Unions y narrowing Aprende a modelar estados (loading/success/error) con unions y a usar narrowing para que el compilador te ayude.

Puntos de control
  • Unions y narrowing
  • Conceptos clave
  • Ejercicio
  • Checklist de mastery

Unions y narrowing

Aprende a modelar estados (loading/success/error) con unions y a usar narrowing para que el compilador te ayude.

Conceptos clave

  • Discriminated unions
  • Type guards (in, typeof, custom)
  • Exhaustive checks

Ejemplo

type Result<T> =
  | { ok: true; data: T }
  | { ok: false; error: string };

function parseId(input: string): Result<string> {
  if (!input.startsWith('u_')) return { ok: false, error: 'invalid id' };
  return { ok: true, data: input };
}

const r = parseId('u_123');
if (!r.ok) {
  console.error(r.error);
} else {
  console.log(r.data);
}

Ejercicio

  • Crea un union para estados de un request: idle/loading/success/error.
  • Usa exhaustive check para garantizar que cubriste todos.

Checklist de mastery

  • Puedo evitar null checks infinitos con unions.
  • Se escribir type guards simples.

Profundizacion laboral

Para usar este tema en un contexto profesional, no alcanza con conocer la definicion. Necesitas reconocer restricciones, elegir una solucion razonable y explicar el criterio. Trabaja siempre con una version pequena del problema antes de pasar a una implementacion grande.

Aplicacion en entrevista o trabajo

  • Describe el problema en una frase clara.
  • Explica que alternativa elegiste y que descartaste.
  • Muestra evidencia: codigo, captura, tabla, prototipo, checklist o documento.
  • Cierra con una mejora futura para demostrar criterio.
Laboratorio de práctica

Antes de marcar esta lección como completa, escribí una evidencia breve para TypeScript Completo: un ejemplo, una decisión, una captura, una mini demo o una nota que puedas reutilizar en portfolio.

Reflexión rápida

¿Qué cambiarías en tu forma de trabajar después de aplicar unions + narrowing: manejar estados sin bugs?

De lección a portfolio

Convertí esta lección en una prueba técnica visible.

Una app pequeña publicada, con README y decisiones explicadas, funciona mejor que una lista de tecnologías sueltas.

Paso 1

Creá una demo mínima que use el concepto de la lección.

Paso 2

Escribí un README corto con objetivo, stack, decisión técnica y mejora futura.

Paso 3

Publicá la demo y enlazala desde tu perfil profesional.

Newsletter Cursalo

Recibí rutas y cursos nuevos

Sumate para recibir recursos orientados a empleo y portfolio.

  • Rutas de empleo
  • Cursos prácticos
  • Portfolio y entrevistas

Sin spam. También podés entrar con tu cuenta para guardar progreso. Iniciá sesión