Tipado de errores (unknown) y reducción en catch
Tipifique los parámetros de catch como unknown y redúzcalos después con instanceof/typeof o protectores personalizados para gestionar errores de forma segura.
Tipado de errores (unknown) y reducción en catch es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 2 de 3. 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 3 lecciones en total.
Introducción
Objetivo: capturar errores como unknown y acotarlos de forma segura. Usará instanceof, typeof y guardas de tipo personalizadas para leer los datos del error sin sorpresas.
unknown + instanceof
Empiece por unknown. Acote con instanceof Error para acceder a message, stack, etc.
async function boom(): Promise<void> { throw new Error("boom") }
async function run() {
try {
await boom();
} catch (e: unknown) {
if (e instanceof Error) {
console.error("Handled:", e.message);
} else {
console.error("Non-Error thrown:", e);
}
}
}
run();typeof para valores primitivos
Algunos códigos lanzan cadenas de texto u otros valores primitivos. Use typeof para acotar el tipo y gestionarlos correctamente.
function throwString() { throw "bad" }
try {
throwString();
} catch (e: unknown) {
if (typeof e === "string") {
console.warn("string error:", e.toUpperCase());
} else {
console.warn("other error", e);
}
}Guarda personalizada
Cree una guarda de tipo definida por el usuario para reconocer estructuras «similares a errores» procedentes de distintas capas.
type ErrorLike = { message: string; code?: string };
function isErrorLike(e: unknown): e is ErrorLike {
return !!e && typeof e === "object" && "message" in e;
}
try {
throw { message: "oops", code: "E_BAD" };
} catch (e: unknown) {
if (isErrorLike(e)) {
console.error(e.message, e.code ?? "no-code");
} else {
console.error("unknown error", e);
}
}Registro seguro
Centralice la gestión de errores. Un pequeño asistente acota el tipo y registra los errores de forma segura, evitando incluso errores en el propio registro.
function logErrorSafe(e: unknown): void {
if (e instanceof Error) {
console.error("Error:", e.message);
} else if (typeof e === "string") {
console.error("Error(string):", e);
} else {
try {
console.error("Error(obj):", JSON.stringify(e));
} catch {
console.error("Error(unknown)");
}
}
}
try { throw { oops: true } } catch (e: unknown) { logErrorSafe(e) }Consejos
Consejos:
- Prefiera unknown en catch.
- Acote con
instanceof,typeofo guardas. - No dé por hecho que se trata de
Error: el código de terceros puede lanzar cualquier valor.
Comprobación del tipado de errores
Comprobación rápida: ¿Por qué conviene preferir unknown en catch?
Resumen
Resumen: capture como unknown, acote con instanceof/typeof o guardas personalizadas y centralice el registro seguro.
Preguntas frecuentes
¿La lección «Tipado de errores (unknown) y reducción en catch» es gratis?
Sí — el texto completo de «Tipado de errores (unknown) y reducción en catch» 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 3 lecciones en total.
¿Qué aprenderé en «Tipado de errores (unknown) y reducción en catch»?
Tipifique los parámetros de catch como unknown y redúzcalos después con instanceof/typeof o protectores personalizados para gestionar errores de forma segura. 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 2 de 3.
¿Cuánto tiempo toma la lección «Tipado de errores (unknown) y reducción en catch»?
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
- Promise y tipado de async/await
- Tipado de errores (unknown) y reducción en catch
- Patrones de concurrencia (all/settled/race) y tipos