Capacidad de definir múltiples versiones de una función que realizan diferentes tareas según sus parámetros.
En TypeScript se logra con overload signatures. JavaScript no tiene sobrecarga nativa.
// Function overloading en TypeScript // Definir las firmas (overload signatures) function formatear(valor: string): string; function formatear(valor: number): string; function formatear(valor: Date): string; // Implementación única function formatear(valor: string | number | Date): string { if (typeof valor === 'string') { return valor.trim().toLowerCase(); } if (typeof valor === 'number') { return valor.toFixed(2); } if (valor instanceof Date) { return valor.toLocaleDateString('es-ES'); } return String(valor); } // Uso - TypeScript infiere el tipo correcto formatear(' HOLA '); // string formatear(123.456); // string formatear(new Date()); // string // Método overloading en clases class Calculadora { sumar(a: number, b: number): number; sumar(a: string, b: string): string; sumar(a: any, b: any): any { return a + b; } }