大家好,这是我第一次使用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) {}
}