Angular 如何将任何类型的错误更改为错误类型的错误?
我使用ErrorHandler来捕获生成的异常。 捕获的错误类型为error,但这里的类内错误类型为Angular 如何将任何类型的错误更改为错误类型的错误?,angular,typescript,Angular,Typescript,我使用ErrorHandler来捕获生成的异常。 捕获的错误类型为error,但这里的类内错误类型为error:any,由哪个console.log(“error”,error)引起;打印未捕获的错误(承诺):[object object],因为错误对象的类型是任意的 如何在handleError(error:any)中将error对象更改为error?类型脚本在运行时不键入check。由于Error是any(any仅表示“any object”),因此使用Error对象调用handleErro
error:any
,由哪个console.log(“error”,error)引起;打印未捕获的错误(承诺):[object object],因为错误对象的类型是任意的
如何在
handleError(error:any)
中将error对象更改为error?类型脚本在运行时不键入check。由于Error
是any
(any
仅表示“any object”),因此使用Error
对象调用handleError(Error:any)
是完全有效的
这有点像在转换成javascript时“选择退出”类型检查
因此,当您说:“未捕获打印错误(承诺):[object object],因为错误对象的类型是any。”,那么“any”类型很可能实际上是一个错误。当你将一个对象打印到控制台时,它看起来总是像[object object]
(除非你的控制台有一些很好的解析功能,比如Chrome的控制台,它显示一个交互式对象)。如果您想要json:doerror.toJSON()
,您将看到error对象中的所有字段,并能够判断它是否实际上是一个错误
我怀疑你想做一些类似的事情:
import {NgModule, ErrorHandler} from '@angular/core';
class MyErrorHandler implements ErrorHandler {
handleError(error:any) {
// do something with the exception
console.log('Error',error);
}
}
我不知道我脑子里到底是怎么想的。如果两者都没有,则可以使用as
命令在编写代码时简化操作:
console.log('Error', error.message);
当然,如果有人在非错误对象(或没有消息的对象)上使用它,则会出现这种情况,因此最好进行检查:
handleError(e: any) {
// do something with the exception
const error as Error;
console.log('Error', error.message);
}
handleError(e: any) {
// do something with the exception
const error as Error;
if (error.message) {
console.log('Error', error.message);
} else {
console.log('Unspecified error!');
}
}