gpt4 book ai didi

inheritance - TypeScript 中的自定义错误类

转载 作者:搜寻专家 更新时间:2023-10-30 20:29:22 24 4
gpt4 key购买 nike

我想在 TypeScript 中创建自己的错误类,扩展核心 Error 以提供更好的错误处理和自定义报告。例如,我想创建一个 HttpRequestError 类,将 url、response 和 body 传递给它的构造函数,它用 Http 请求响应 http://example.com失败,状态代码 500 和消息:出了点问题 和正确的堆栈跟踪。

如何在 TypeScript 中扩展核心错误类?我已经在 SO 中找到了帖子:How do I extend a host object (e.g. Error) in TypeScript但此解决方案对我不起作用。我使用 TypeScript 1.5.3

有什么想法吗?

最佳答案

TypeScript 2.1 在扩展内置函数(如 Error)方面发生了重大变化。

来自TypeScript breaking changes documentation

class FooError extends Error {
constructor(msg: string) {
super(msg);

// Set the prototype explicitly.
Object.setPrototypeOf(this, FooError.prototype);
}

sayHello() {
return "hello " + this.message;
}
}

然后你可以使用:

let error = new FooError("Something really bad went wrong");
if(error instanceof FooError){
console.log(error.sayHello());
}

关于inheritance - TypeScript 中的自定义错误类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31626231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com