首页 > 解决方案 > 使用 TypeScript 时 Mongoose 集合模型的类型是什么

问题描述

大家好,这是我第一次使用 TypeScript,所以我想构建一个 Auth 控制器类,它在构造函数和许多其他函数中接受猫鼬模型,但是我面临的问题我似乎找不到猫鼬模型的数据类型/类型

当我悬停在猫鼬模型上时,我看到以下内容:const model: Model<Document, {}>

这就是我厌倦制作这个构造函数的原因

import { Model } from "mongoose";

class AuthController {
  constructor(userModel: Model) {}
}

标签: typescriptmongoose

解决方案


你应该能够解决这个问题

Model<UserDocument>

哪里UserDocument是扩展猫鼬Document类型的类型,例如:

import { Document } from 'mongoose';
UserDocument = Document & { email: string } // Whatever user fields you have

解决此问题的另一种方法是从其文件中导出您的用户模型:

export default mongoose.model<UserDocument>('User', UserSchema)

然后在您的构造函数中使用该导出模型

import UserModel from "./user-model";

class AuthController {
  constructor(userModel: UserModel) {}
}

推荐阅读