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.

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. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com