当使用TypeScript时,Mongoose集合模型的类型是什么



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

当我在猫鼬模型的顶部徘徊时,我看到了以下内容:const model: Model<Document, {}>

  • 所以我认为Model是我需要指定的类型

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

import { Model } from "mongoose";
class AuthController {
constructor(userModel: Model) {}
}
  • 但我收到了以下错误消息:Generic type 'Model<T, QueryHelpers>' requires between 1 and 2 type arguments.t

  • 我能得到一些帮助吗?我试图避免使用any数据类型,因为我想确保构造函数接受那些指定的参数类型

您应该能够使用解决此问题

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) {}
}

最新更新