首页 > 解决方案 > Mongoose Schema 无法与 typescript 类型一起正常工作

问题描述

我正在做一个使用 Mongoose 和 typescript 的项目。我遇到了问题,当我尝试使用Scheme.create(). 我不太清楚为什么。它向我展示了 create 方法的泛型类型,如下所示:

类型

所以,它只是显示{}我使用的东西而不是我的模型。那么让我们来看看我使用的模式和类型。我有一个IUserModel在共享空间中的类型。它在前端和后端之间共享,因此我无法创建新类型。但这就是类型:

interface IUserModel {
  password: string;
  adminLevel: Number;
  active: boolean;
  firstName: string;
  lastName: string;
  email: string;
  city?: string;
  street?: string;
  postcode?: number;
  regTimeStamp: Date;
  organizationId?: string;
  organizationAdminLevel?: number;
  balance: number;
  profilePicture?: string;
  firstLogin: boolean;
};

现在方案:

interface IUserModelSchema extends IUserModel, mongoose.Document{}

const UserSchema = new mongoose.Schema({
    email: { type: String, required: true, unique: true },
    firstName: { type: String, required: true },
    lastName: { type: String, required: true },
    postcode: { type: Number, required: false },
    city: { type: String, required: false },
    street: { type: String, required: false },
    password: { type: String, required: true },
    organizationId: { type: String, required: false },
    organizationAdminLevel: { type: Number, required: false },
    active: { type: Boolean, required: true },
    balance: { type: Number, required: true },
    profilePicture: { type: String, required: false },
    regTimeStamp: { type: Date, required: true },
    adminLevel: { type: Number, required: true },
});
const UserModel = mongoose.model<IUserModelSchema>("User", UserSchema);

export default UserModel;

所以我尝试过:

我已经建立了另一个具有相同架构的项目。我正在使用相同的架构,没有问题。我在那里的泛型.create<>方法上有一个自动完成和正确的类型。

编辑:好的,我发现最后一个工作版本是 5.11.4,为什么它不再在新版本上工作?

标签: javascripttypescriptmongoose

解决方案


推荐阅读