这是我的代码:
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请求架构来决定。
如何解决typescript编译器的错误?我想我需要声明一个接口并指定属性。
答案 0 :(得分:1)
财产错误'在类型'错误'。
上不存在
创建名为error-extension.d.ts
的文件并具有以下内容:
interface Error {
errors: Error;
}
更多:https://basarat.gitbooks.io/typescript/content/docs/types/lib.d.ts.html
答案 1 :(得分:0)
我在初始化Error
课程时发现,实际上它在errors
中没有Error
。它应该创建一个接口并将errors
设置为选项。
这是我的解决方案:
interface IJoiErrorException extends NodeJS.ErrnoException {
errors?: Object;
}
const errorBadRequest: IJoiErrorException = new Error("Bad request");