【问题标题】:Is there a Mongoose Type for "any Model"?“任何型号”是否有猫鼬类型?
【发布时间】:2020-10-22 04:58:18
【问题描述】:
在 Mongoose 中,有一个带有 2 个参数的模型类型:Model<T, QueryHelper>。参数之一是必需的。例如Model<User>。如何指定一个值应该是 any Mongoose 模型?示例:
const helper = (model: Model) => { ... }
helper(User)
【问题讨论】:
标签:
node.js
mongodb
typescript
mongoose
【解决方案1】:
答案其实很简单。 “任何模型”的类型是
Model<any>
如果你想更具体,你可以说它必须是扩展Document的类型的模型
Model<Document>
如果您希望您的 helper 返回返回类型取决于模型类型的内容,那么您将使用泛型。例如,如果我们想调用 model.new 并返回文档,它看起来像这样:
const helper = <T extends Document>(model: Model<T>): T => { ... }
但是如果你的助手不关心它使用的是什么类型的模型,那么Model<any> 就可以了。