Creé un error personalizado y configuré un mensaje personalizado para él. luego, en algún lugar, arrojo mi error personalizado y lo atrapo en otro lugar. Quiero acceder al mensaje que configuré antes. ¡Pero TypeScript me dice que el error tiene un tipo desconocido! ¿Cómo puedo arreglarlo?
async activeAccount(uuid: string) { try { const response = await ApiClient( METHODS.GET, "Account/approveEmail", false, { uuid } ); } catch (error) { this.showToastError(error.message); } }No hay garantía de que lo capturado por catch sea en realidad un error porque throw puede arrojar cualquier cosa (es por eso que el tipo es unknown , debe restringirlo con controles para hacer cualquier cosa con él). El compilador le advierte apropiadamente que no está considerando algo como esto:
try { throw undefined; } catch (err) { console.log(err.message); // oops }para solucionar esto, puede agregar una verificación para asegurarse de que tiene un error real:
try { ... } catch (err) { if (err instanceof Error) { console.log(err.message); // ok } }