Reducción de errores capturados (unknown frente a Error)
Gestione de forma segura los errores capturados tipados como unknown.
Reducción de errores capturados (unknown frente a Error) es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de TypeScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de TypeScript Academy incluye 4 lecciones en total.
Bienvenida
Cambio de TS 4.0
// err is now: unknown
try { doSomething(); }
catch (err) {
// err.message; // Error — cannot access on unknown
}Estrechamiento con instanceof
catch (err) {
if (err instanceof Error) {
console.error(err.message, err.stack);
} else {
console.error('Unknown error:', String(err));
}
}Guardia de tipos isError
function isError(e: unknown): e is Error {
return e instanceof Error;
}
catch (e) {
if (isError(e)) console.error(e.message);
}Estrechamiento de errores personalizados
catch (err) {
if (err instanceof NetworkError) { /* retry */ }
else if (err instanceof AuthError) { /* redirect */ }
else if (err instanceof Error) { /* generic */ }
else throw err;
}useUnknownInCatchVariables
{ "compilerOptions": { "useUnknownInCatchVariables": true } }Errores de tipo string
catch (err) {
const message = err instanceof Error ? err.message : String(err);
console.error(message);
}Función auxiliar typed throw
function throwErr(msg: string, code = 500): never {
const e: AppError = Object.assign(new Error(msg), { statusCode: code });
throw e;
}Volver a lanzar errores unknown
catch (err) {
if (err instanceof KnownError) handle(err);
else throw err; // propagate unknowns
}Límites de error en React
componentDidCatch(error: unknown, info: ErrorInfo) {
if (error instanceof Error) logError(error.message);
}Pruebas de errores capturados
test('catches errors', async () => {
jest.spyOn(api, 'fetch').mockRejectedValue(new NetworkError());
const result = await safeRun();
expect(result.ok).toBe(false);
});Comprobación rápida
Recapitulación
Preguntas frecuentes
¿La lección «Reducción de errores capturados (unknown frente a Error)» es gratis?
Sí — el texto completo de «Reducción de errores capturados (unknown frente a Error)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de TypeScript Academy, actualiza a CoddyKit PRO. El curso de TypeScript Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Reducción de errores capturados (unknown frente a Error)»?
Gestione de forma segura los errores capturados tipados como unknown. Practicas TypeScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar TypeScript Academy?
No se requiere experiencia previa. TypeScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Reducción de errores capturados (unknown frente a Error)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de TypeScript Academy?
Sí. Cada lección de TypeScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Clases y jerarquías de errores tipadas
- El patrón Result: Ok y Err
- Reducción de errores capturados (unknown frente a Error)
- Gestión de errores en código TypeScript asíncrono