我正在尝试为软件包trace-error
键入文件。
基本上,它可以创建如下所示的链接错误:
const downStreamError = new TraceError("Some message", upStreamError)
这就是我的目的:
declare module "trace-error" {
class TraceError implements Error {
name: string;
message: string;
constructor(message: string, ...errors: Error[]);
}
export default TraceError;
}
但是我遇到了这个错误:
Type 'TraceError' has no properties in common with type 'Error'.
我很确定这是因为constructor
不在接口Error中。
我也尝试使用函数声明:
declare module "trace-error" {
function TraceError(message: string, ...errors: Error[]): Error;
export default TraceError;
}
但是随后我在客户端代码中得到以下错误(出于我理解的原因。):
[ts] Only a void function can be called with the 'new' keyword.
因此,我坚持如何在问题开头描述的用例中编写类型。任何见识将不胜感激。
编辑:快速修复
以下是我现在使用的快速修复程序:
declare module "trace-error" {
class TraceError {
constructor(message: string, ...errors: Error[]);
}
export default TraceError;
}
编译器不再抱怨,但是删除了对类Error
的引用。