node.js - “任何型号”是否有猫鼬类型?
问题描述
在 Mongoose 中,有一个 Model 类型需要 2 个参数:Model<T, QueryHelper>
. 其中一个参数是必需的。例如Model<User>
. 如何指定一个值应该是任何Mongoose 模型?例子:
const helper = (model: Model) => { ... }
helper(User)
解决方案
答案其实很简单。“任何模型”的类型是
Model<any>
如果您想更具体一点,可以说它必须是扩展类型的模型Document
Model<Document>
如果您希望helper
返回返回类型取决于模型类型的东西,那么您将使用泛型。例如,如果我们想调用model.new
并返回文档,它看起来像这样:
const helper = <T extends Document>(model: Model<T>): T => { ... }
但是如果你的助手不关心它使用的是什么类型的模型,那就没问题了Model<any>
。
推荐阅读
- c++ - 当相关ctor是私有的时,如何在堆上返回一个类实例?
- fastreport - C++Builder 社区版(版本 10.4.2)中是否提供 FastReport?
- javascript - POST 获取请求后更新用户列表
- angular - Angular 11 上传进度事件未发生
- spring-boot - Spring Boot 将 DisabledException 转换为 InsufficientAuthenticationException
- r - 如何在数据框中获取差异
- python - 如何将值添加到python字典中的数组值中
- javascript - 返回多个没有键的对象
- arrays - 使用分而治之的最小前缀数组
- php - 如何使用正则表达式 php 在大字符串中查找单个数字