Funciones tipadas: parámetros, retorno y contratos claros

Escribe funciones mantenibles con firmas robustas, callbacks tipados y errores más predecibles.

En TypeScript, una función bien tipada es un contrato verificable, no solo una implementación que "parece" correcta.

Definir parámetros y retornos con precisión evita cascadas de checks defensivos en capas superiores.

Una firma clara también documenta intención de negocio: qué casos soporta, qué errores modela y qué invariantes mantiene.

Esta lección se centra en escribir funciones que sobreviven cambios de requisitos sin degradar legibilidad.

  • Una firma útil habla del problema de negocio, no del detalle accidental de implementación.
  • Agrupa parámetros que viajan juntos en objetos tipados para evitar funciones con listas largas y frágiles.
  • Nombra tipos con vocabulario del producto (OrderDraft, UserRole) y no con etiquetas genéricas (Data, Payload).
  • Cuando un parámetro es opcional, define claramente su semántica y evita que signifique varias cosas a la vez.
  • Si una función puede fallar, su tipo de retorno debe hacerlo visible.

Firmas orientadas a dominio

Una firma útil habla del problema de negocio, no del detalle accidental de implementación.

Agrupa parámetros que viajan juntos en objetos tipados para evitar funciones con listas largas y frágiles.

Nombra tipos con vocabulario del producto (OrderDraft, UserRole) y no con etiquetas genéricas (Data, Payload).

Cuando un parámetro es opcional, define claramente su semántica y evita que signifique varias cosas a la vez.

Retornos y errores modelados explícitamente

Si una función puede fallar, su tipo de retorno debe hacerlo visible.

Devolver null sin contexto desplaza el problema al consumidor. Es preferible usar un resultado discriminado de éxito/error.

Este patrón mejora testabilidad porque cada rama tiene contrato explícito y assertions concretas.

También reduce excepciones ocultas: el flujo de error queda en la firma y no enterrado en logs o catch genéricos.

Callbacks y composición sin perder tipos

Al pasar funciones como argumento, tipar bien la interfaz evita bugs de acoplamiento.

Define tipos de callback reutilizables cuando varios módulos comparten la misma forma de interacción.

Evita any en callbacks: suele ocultar discrepancias entre productor y consumidor de eventos.

Si una función compone otras, declara su retorno explícito para que el pipeline completo sea predecible.

TypeScript
04

Funciones tipadas: parámetros, retorno y contratos claros

Escribe funciones mantenibles con firmas robustas, callbacks tipados y errores más predecibles.

Código del tema: funciones robustas

📘 Teoría

Firmas orientadas a dominio

Una firma útil habla del problema de negocio, no del detalle accidental de implementación.

1

Agrupa parámetros que viajan juntos en objetos tipados para evitar funciones con listas largas y frágiles.

2

Nombra tipos con vocabulario del producto (OrderDraft, UserRole) y no con etiquetas genéricas (Data, Payload).

3

Cuando un parámetro es opcional, define claramente su semántica y evita que signifique varias cosas a la vez.

Retornos y errores modelados explícitamente

Si una función puede fallar, su tipo de retorno debe hacerlo visible.

1

Devolver null sin contexto desplaza el problema al consumidor. Es preferible usar un resultado discriminado de éxito/error.

2

Este patrón mejora testabilidad porque cada rama tiene contrato explícito y assertions concretas.

3

También reduce excepciones ocultas: el flujo de error queda en la firma y no enterrado en logs o catch genéricos.

Resultado discriminado en funciones
Revisar
type ContextoTypescriptfuncionesretornosmedio = {
  foco: string;
  objetivo: string;
  riesgo: string;
};

const contexto: ContextoTypescriptfuncionesretornosmedio = {
  foco: "funciones robustas",
  objetivo: "escribir código predecible",
  riesgo: "abstraer sin criterio",
};

console.log("Checklist técnico:", contexto);

export {};

Callbacks y composición sin perder tipos

Al pasar funciones como argumento, tipar bien la interfaz evita bugs de acoplamiento.

1

Define tipos de callback reutilizables cuando varios módulos comparten la misma forma de interacción.

2

Evita any en callbacks: suele ocultar discrepancias entre productor y consumidor de eventos.

3

Si una función compone otras, declara su retorno explícito para que el pipeline completo sea predecible.

🧪 Aprende probando

Ejemplo Ejemplo guiado Lee, ejecuta y modifica para ver cómo cambia el comportamiento al ajustar tipos.
Ejemplo Demo interactiva Prueba una mini interfaz para visualizar decisiones de tipado.

🏁 Retos

Reto Reto práctico Completa el ejercicio aplicando lo visto en esta sesión.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre TypeScript.

Test de TypeScript

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .