如何扩展Error类?
这是我的代码:
let errorBadRequest = new Error("Bad request"); res.statusCode = 400; errorBadRequest.errors = err.details.reduce(function(prev, current) { prev[current.path] = current.message; return prev; }, {}); throw errorBadRequest;
我想在错误实例中扩展error
属性,但是tsc表示joi-utils.ts(21,23): error TS2339: Property 'errors' does not exist on type 'Error'.
errors
的结构是{fieldname: fieldmsg}
,这是根据我的joi请求模式来决定的。
如何解决从打字稿编译器的错误? 我想我需要声明一个接口并指定属性。
属性“错误”在types“错误”上不存在。
创build一个名为error-extension.d.ts
的文件,并具有以下内容:
interface Error { errors: Error; }
更多: https : //basarat.gitbooks.io/typescript/content/docs/types/lib.d.ts.html
我发现初始化Error
类时,实际上在Error
没有Error
。 它应该做一个接口,并设置errors
的选项。
这是我的解决scheme:
interface IJoiErrorException extends NodeJS.ErrnoException { errors?: Object; } const errorBadRequest: IJoiErrorException = new Error("Bad request");