Skip to content

Lección 78 — Funciones Tipadas

En TypeScript, las funciones pueden (y deben) especificar los tipos de sus parámetros y su valor de retorno. Esto convierte a las funciones en contratos predecibles.

function sumar(a: number, b: number): number {
return a + b;
}
  • a: number — parámetro con tipo
  • b: number — parámetro con tipo
  • : number — tipo de retorno

Si la función no retorna nada, usa void:

function log(mensaje: string): void {
console.log(mensaje);
// No hay return
}

Un parámetro puede ser opcional con ?:

function saludar(nombre: string, saludo?: string): string {
return `${saludo ?? 'Hola'}, ${nombre}`;
}

Los valores por defecto también funcionan:

function saludar(nombre: string, saludo: string = 'Hola'): string {
return `${saludo}, ${nombre}`;
}

Puedes declarar el tipo de una función sin implementarla:

type Operacion = (a: number, b: number) => number;
let sumar: Operacion = (x, y) => x + y;
let multiplicar: Operacion = (x, y) => x * y;
// Función básica tipada
function calcularDescuento(precio: number, porcentaje: number): number {
return precio - (precio * porcentaje / 100);
}
console.log(calcularDescuento(100, 10)); // → 90
// Función que no retorna
function mostrarProducto(nombre: string, precio: number): void {
console.log(`${nombre}: $${precio.toFixed(2)}`);
}
// Función como tipo
type Transformador = (valor: string) => string;
const aMayusculas: Transformador = (texto) => texto.toUpperCase();
const aMinusculas: Transformador = (texto) => texto.toLowerCase();
// Función que recibe un callback
function procesar(texto: string, fn: (t: string) => string): string {
return fn(texto);
}
console.log(procesar('Hola', aMayusculas)); // → 'HOLA'

Escribe una función filtrar que reciba un array de números y una función de criterio (numero: number) => boolean. La función debe retornar un nuevo array con los números que cumplen el criterio. Pruébala filtrando números pares y números mayores a 10.

Si omites el tipo de retorno, TS lo infiere automáticamente. Es buena práctica anotarlo explícitamente en funciones públicas o complejas para garantizar que el retorno es el esperado.

Usa arrow functions con tipos para escribir callbacks más limpios. El tipo de los parámetros se puede inferir del contexto cuando la función se asigna a una variable tipada o se pasa como argumento.