【问题标题】: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&lt;any&gt; 就可以了。

    【讨论】:

      猜你喜欢
      • 2020-06-29
      • 2021-05-04
      • 1970-01-01
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      • 2014-05-20
      相关资源
      最近更新 更多