Estructura de control de flujo que ejecuta diferentes bloques de código según el valor de una expresión.
Es una alternativa más eficiente que múltiples if-else cuando se evalúa un mismo elemento varias veces.
// Switch básico const dia = 'lunes'; switch (dia) { case 'lunes': console.log('Inicio de semana'); break; case 'viernes': console.log('¡Viernes!'); break; case 'sábado': case 'domingo': console.log('Fin de semana'); break; default: console.log('Día normal'); } // Switch con return (sin break necesario) function obtenerSaludo(idioma: string): string { switch (idioma) { case 'es': return 'Hola'; case 'en': return 'Hello'; case 'fr': return 'Bonjour'; default: return 'Hi'; } } // Alternativa moderna: objeto lookup const saludos: Record<string, string> = { es: 'Hola', en: 'Hello', fr: 'Bonjour' }; const saludo = saludos[idioma] ?? 'Hi'; // TypeScript: exhaustive check type Estado = 'pendiente' | 'activo' | 'inactivo'; function manejarEstado(estado: Estado) { switch (estado) { case 'pendiente': return 'Esperando...'; case 'activo': return 'Funcionando'; case 'inactivo': return 'Pausado'; default: const _exhaustive: never = estado; return _exhaustive; } }