El error TS2366 de TypeScript se reporta cuando una función está declarada para devolver un tipo específico pero tiene al menos una ruta de código que llega al final de la función sin una sentencia return. La función devolvería undefined implícitamente en esa ruta.
Por qué ocurre
- •Una cadena condicional no cubre todas las entradas posibles con una sentencia return.
- •Una sentencia switch carece de un caso default que devuelva un valor.
- •Una cadena if/else maneja algunos casos pero no todos.
- •Los returns anticipados en bloques try/catch dejan el final de la función alcanzable.
Ejemplos
Código que causa el error
function getLabel(code: number): string {
if (code === 200) return "OK";
if (code === 404) return "Not Found";
// missing: no return for other codes
}Error en la terminal
error TS2366: Function lacks ending return statement and return type does not include 'undefined'.
Cómo solucionarlo
Agrega una sentencia return final que cubra todos los casos no manejados. Considera lanzar un error para rutas verdaderamente inalcanzables para hacer la intención explícita. Usa un switch con una verificación exhaustiva o una tabla de búsqueda para eliminar las ramificaciones.
Código corregido
function getLabel(code: number): string {
if (code === 200) return "OK";
if (code === 404) return "Not Found";
return "Unknown";
}Errores relacionados
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis