npm 包导出自定义错误的 TypeScript 导入问题

问题描述 投票:0回答:1

我创建了一个 npm 包,在其中定义了自定义错误类并将其导出。但是,当将这些类导入到另一个项目时,尽管导入成功,TypeScript 仍会显示错误。 这是我的 npm 包的结构:

NotFoundError.ts:

import { CustomError } from "./custom-error";

export class NotFoundError extends CustomError {
  statusCode = 404;

  constructor() {
    let message = "Route not found";
    super(message);

    Object.setPrototypeOf(this, NotFoundError.prototype);
  }

  serializeErrors() {
    return [{ message: this.message }];
  }
}

自定义错误.ts:

export abstract class CustomError extends Error {
  abstract statusCode: number;

  constructor(message: string) {
    super(message);
    Object.setPrototypeOf(this, CustomError.prototype);
  }

  abstract serializeErrors(): { message: string; fields?: string }[];
}

index.ts:

export * from "./errors/custom-error";
export * from "./errors/not-found-error";

在另一个项目中,我安装了这个 npm 包并尝试导入错误类:

import {
  CustomError,
  NotFoundError,
} from "@node/common";

尽管导入期间没有显示错误,但在尝试像这样使用 NotFoundError 类时:

throw new NotFoundError('error message')

TypeScript 抛出错误:

错误 TS2305:模块“

@node/common
”没有导出成员“NotFoundError”。

我正在寻求有关如何解决此问题的指导。任何见解或建议将不胜感激。预先感谢您。

node.js typescript npm
1个回答
0
投票

您正在从 @node/common 导入 NotFoundError ,这是您自己的自定义包吗?

© www.soinside.com 2019 - 2024. All rights reserved.