【发布时间】:2021-07-06 02:26:50
【问题描述】:
我无法弄清楚我收到错误的原因。我不是 Typescript 忍者,所以对于这里的某个人来说,这个错误可能很明显。我的项目正在使用 Kubernetes 运行微服务,其中一项服务在我运行项目时抛出以下错误。
我已尽可能多地在 Google 上搜索,但没有发现任何有用的信息。该错误非常特定于某些使猫鼬玩得很好的尝试。
提前致谢。
我的模型文件:
import mongoose from 'mongoose';
import { Order, OrderStatus } from './order';
interface TicketAttrs {
id: string;
price: number;
title: string;
}
export interface TicketDoc extends mongoose.Document {
id: string;
title: string;
price: number;
isReserved(): Promise<boolean>;
}
interface TicketModel extends mongoose.Model<TicketDoc> {
build(attrs: TicketAttrs): TicketDoc;
}
const schema = new mongoose.Schema({
title: {
type: String,
required: true
},
price: {
type: Number,
required: true,
min: 0
}
}, {
toJSON: {
transform(doc, ret) {
ret.id = ret._id;
delete ret._id;
}
}
});
schema.statics.build = (attrs: TicketAttrs) => {
return new Ticket({
_id: attrs.id,
price: attrs.price,
title: attrs.title
});
};
/**
* Queries the orders to determine if a ticket is currently
* reserved.
*
* @returns boolean
*/
schema.methods.isReserved = async function() {
const existingOrder = await Order.findOne({
ticket: this,
status: {
$in: [
OrderStatus.Created,
OrderStatus.AwaitingPayment,
OrderStatus.Complete
]
}
});
return !!existingOrder;
};
const Ticket = mongoose.model<TicketDoc, TicketModel>('Ticket', schema);
export { Ticket };
错误:
[orders] /app/src/models/ticket.ts 中的编译错误
[订单] [错误] 11:43:04 ⨯ 无法编译 TypeScript:
[orders] src/models/ticket.ts(57,5): error TS2322: Type 'Document
【问题讨论】:
-
请将错误信息粘贴为文本而不是屏幕截图。
标签: javascript node.js typescript mongoose