TypeScript Completo
TypeScript Completo Texto Leccion

Funciones tipadas + inferencia: el combo ganador

Funciones tipadas e inferencia: el combo ganador Tipar funciones es donde TypeScript paga la mayor parte de su valor: entradas claras, salidas claras y errores que aparecen mientras escribes, no en producción. La buena noticia es que casi nunca necesitas anotar el tipo de retorno: TypeScript lo infiere a partir del cuerpo. Parámetros y retornos Anota siempre los parámetros, porque TypeScript no puede adivinarlos. El retorno suele inferirse, aunque conviene anotarlo en funciones públicas o export
Tiempo de estudio
15 Min

Funciones tipadas e inferencia: el combo ganador


Tipar funciones es donde TypeScript paga la mayor parte de su valor: entradas claras, salidas claras y errores que aparecen mientras escribes, no en producción. La buena noticia es que casi nunca necesitas anotar el tipo de retorno: TypeScript lo infiere a partir del cuerpo.



Parámetros y retornos


Anota siempre los parámetros, porque TypeScript no puede adivinarlos. El retorno suele inferirse, aunque conviene anotarlo en funciones públicas o exportadas para fijar el contrato.



type Plan = "free" | "pro";

// Retorno inferido como number
function precio(plan: Plan) {
return plan === "free" ? 0 : 12;
}

// Retorno anotado para fijar el contrato público
export function formatearPrecio(valor: number): string {
return `$${valor.toFixed(2)}`;
}


Funciones asíncronas y Promise<T>


Toda función async devuelve una Promise. El tipo entre los signos <> es lo que resuelve la promesa cuando esperas con await.



async function buscarUsuario(id: string): Promise<{ id: string; nombre: string }> {
// imagina una consulta a la base de datos
return { id, nombre: "María" };
}

const usuario = await buscarUsuario("u_1"); // usuario: { id, nombre }


Atención

Si una función puede no devolver valor, modela el caso explícitamente con T | null en lugar de devolver undefined sin avisar. Así el compilador obliga a quien la llama a manejar el caso vacío.



Una función async que hace return 5, ¿qué tipo devuelve?

Toda función async envuelve su retorno en una Promise. Devolver 5 dentro de una async produce Promise<number>.


Ejercicio práctico


Objetivo: tipar funciones síncronas y asíncronas con casos límite.



  1. Escribe parsearPrecio(input: string): number | null que convierta el texto a número o devuelva null si no es válido.

  2. Llama a la función y maneja el caso null antes de usar el resultado.

  3. Escribe una función async que devuelva una lista de tres items con tipo explícito.

  4. Usa await para obtener la lista y recórrela.


Entregable: el archivo con ambas funciones y una pequeña prueba que demuestre el manejo del caso null.



Para recordar


  • Anota los parámetros siempre; el retorno casi siempre se infiere.

  • Toda función async devuelve Promise<T>.

  • Modela la ausencia de valor con T | null para forzar su manejo.

Texto Leccion 3/13
Estas viendo
Funciones tipadas + inferencia: el combo ganador
Hablar por WhatsAppContactar por WhatsApp