You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中如何推断Mongoose模型回调函数的参数类型

解决Mongoose Model.find回调参数的TypeScript类型推断问题

不用被迫用any,Mongoose对TypeScript有完整的类型支持,只要正确定义Model的文档类型,就能自动推断回调参数的类型,具体做法如下:

  • 第一步:定义文档接口
    先声明对应集合的文档结构接口,比如:

    interface Item {
      name: string;
      price: number;
      // 补充你的其他字段
    }
    
  • 第二步:创建带类型的Model
    创建Model时传入这个接口,让Mongoose关联类型:

    const Item = mongoose.model<Item>('Item', new mongoose.Schema({
      name: String,
      price: Number
    }));
    
  • 第三步:自动推断回调类型
    这时再调用Item.find,TypeScript会自动识别回调参数的类型:

    Item.find({}, (err, items) => {
      // err 类型自动推断为 mongoose.CallbackError
      // items 类型自动推断为 Item[]
    });
    

如果你的Model已经创建好了,也可以手动给回调参数指定类型:

Item.find({}, (err: mongoose.CallbackError, items: Item[]) => {
  // 逻辑代码
});

Mongoose的类型定义已经内置了所有方法的回调参数类型,不用依赖官方文档的API说明,直接用IDE的智能提示就能看到类型信息。

内容的提问来源于stack exchange,提问作者Infinite Learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 03:10:16