错误 TS2305:模块“@inbaltickets/common”没有导出成员“OrderStatus”

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

我有一个名为common的共享库,在我的共享库中我有index.ts:

export * from './errors/bad-request-error';
export * from './errors/custom-error';
export * from './errors/data-base-connection-error';
export * from './errors/not-authorized-error';
export * from './errors/not-found-error';
export * from './errors/request-validation-error';

export * from './middlewares/current-user';
export * from './middlewares/error-handler';
export * from './middlewares/require-auth';
export * from './middlewares/validate-request';

export * from './events/base-listener';
export * from './events/base-publisher';
export * from './events/subjects';
export * from './events/ticket-created-event';
export * from './events/ticket-updated-event';
export * from './events/types/order-status';
export * from './events/order-created-event';
export * from './events/order-cancelled-event';

在“./events/types/order-status”中有:

export declare enum OrderStatus {
  Created = 'created', 
  Cancelled = 'cancelled', 
  AwaitingPayment = 'awaiting:payment', 
  Complete = 'complete' 
}

我将此包导入到另一个项目中,在该项目中我有订单模型:

import mongoose from "mongoose";
import { TicketDoc } from "./ticket";
import { OrderStatus } from '@inbaltickets/common'

export { OrderStatus };

interface OrderAttrs {
  userId: string;
  status: OrderStatus;
  expiresAt: Date;
  ticket: TicketDoc;
}

interface OrderDoc extends mongoose.Document{
  userId: string;
  status: OrderStatus;
  expiresAt: Date;
  ticket: TicketDoc;
}

interface OrderModel extends mongoose.Model<OrderDoc>{
  build(attrs: OrderAttrs): OrderDoc;
}

const orderSchema = new mongoose.Schema({
  userId:{
    type: String,
    required: true
  },
  status:{
    type: String,
    required: true,
    enum: Object.values(OrderStatus),
    default: OrderStatus.Created
  },
  expiresAt:{
    type: mongoose.Schema.Types.Date
  },
  ticket:{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Ticket'
  }
},{
  toJSON: {
    transform(doc, ret) {
      ret.id = ret._id;
      delete ret._id;
    }
  }
});

orderSchema.statics.build = (attrs: OrderAttrs) => {
  return new Order(attrs);
};

const Order = mongoose.model<OrderDoc, OrderModel>('Order', orderSchema);

export { Order };

当我尝试通过 skaffold 编译项目时,它给了我这个错误: 错误 TS2305:模块“@inbaltickets/common”没有导出成员“OrderStatus”。

我该如何解决?

node.js typescript compiler-errors skaffold
1个回答
0
投票

发生这种情况有两个原因:

  1. npm update
    不会更改 package.json 文件,因此 skaffold 不知道更改,您可以尝试执行
    npm update --save
    ,请参阅此处的参考:https://docs.npmjs.com/cli/ v8/命令/npm-update

  2. 您可以更新模块,然后转到

    package.json
    并手动更改您的模块版本,这将强制在skaffold中重建。

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