【发布时间】:2021-09-24 06:13:35
【问题描述】:
我不清楚这个错误在说什么:
Type 'Document
' 缺少以下属性 来自“IAAccount”类型:_type,pai 47 返回新帐户;
错误与此方法有关:
async createAccount(
dbSession: ClientSession,
pai: string
): Promise<IAccount> {
const newAccount = new this.Model(
new (class implements IAccount {
_id = mongoose.Types.ObjectId();
_type: "Account" = "Account";
pai = pai;
})()
);
await newAccount.save(dbSession);
return newAccount;
}
我也收到一个相关的错误提示:
重载 1 of 3, '(options?: SaveOptions | undefined): Promise
>',给出了以下错误。 “ClientSession”类型与“SaveOptions”类型没有共同的属性。重载 2 of 3, '(options?: SaveOptions | undefined, fn?: 回调 > | undefined): void',给出了 以下错误。 “ClientSession”类型与“SaveOptions”类型没有共同的属性。重载 3 of 3, '(fn?: Callback > | undefined): void',给出以下错误。 “ClientSession”类型的参数不可分配给“Callback >”类型的参数。 46 等待 newAccount.save(dbSession);
但它似乎与AccountSchema 模型有关,它的尖括号中有一个any:
interface IAccount {
_id: ID;
_type: "Account";
pai: string;
disabledOn?: Date;
tags?: ITag[];
schemaVersion?: number;
createdOn?: Date;
updatedOn?: Date;
}
const AccountSchemaFields: Record<keyof IAccount, any> = {
_id: Types.ObjectId,
_type: { type: String, default: "Account" },
pai: String,
disabledOn: { type: Date, required: false },
tags: { type: [TagSchema], required: false },
schemaVersion: { type: Number, default: 1 },
createdOn: Date,
updatedOn: Date,
};
我觉得保留any 的类型从来都不是一个好规则,但不确定用什么替换它,如果这确实是问题。
或者这个错误是说我缺少 Mongoose IAccount 文档?
【问题讨论】:
标签: typescript