typescript - 使用 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
我能得到一些帮助吗我试图避免使用任何数据类型,因为我想确保构造函数接受那些指定的参数类型
解决方案
你应该能够解决这个问题
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) {}
}
推荐阅读
- kubernetes - 安装 helm chart stable/mssql-linux 我得到“pod has unbound PersistentVolumeClaims”
- python - keras LSTM val_loss 在训练中总是返回 NaN
- php - 从子嵌套数据库调用父类别父函数
- android - 如何通过 Tasker 启动三星主屏幕快捷方式?
- javascript - AngularUI在自定义指令中引导输入
- html - 图像未在 netlify 上加载并且链接不起作用
- android - 无法使用接口将数据从 DialogFragment 传递到 Activity
- python - 用于删除 2D 列表中的重复项的 Python 代码
- r - 如何使用 mse 函数 - babynames 示例
- r - 如何使用 R 中的某些标准将一个值更改为另一个值?