首页 > 解决方案 > “任何型号”是否有猫鼬类型?

问题描述

在 Mongoose 中,有一个 Model 类型需要 2 个参数:Model<T, QueryHelper>. 其中一个参数是必需的。例如Model<User>. 如何指定一个值应该是任何Mongoose 模型?例子:

const helper = (model: Model) => { ... }

helper(User)

标签: node.jsmongodbtypescriptmongoose

解决方案


答案其实很简单。“任何模型”的类型是

Model<any>

如果您想更具体一点,可以说它必须是扩展类型的模型Document

Model<Document>

如果您希望helper返回返回类型取决于模型类型的东西,那么您将使用泛型。例如,如果我们想调用model.new并返回文档,它看起来像这样:

const helper = <T extends Document>(model: Model<T>): T => { ... }

但是如果你的助手不关心它使用的是什么类型的模型,那就没问题了Model<any>


推荐阅读