#15532·mongoose

从静态查询时, 文档方法类型是缺失的方法

作者: domharrington创建于 2025年7月14日更新于 2026年4月27日
标签typescript

· 先决条件

  • 我写了一个描述性问题的标题
  • 我搜索了现有问题,以确保尚未报告错误

鼠标版

8.16.3 联合国

XNode.js 版本

20.19.0 (简体中文).

MongoDB服务器版本

7.0.15 (中文(简体) ).

XTypeScript版本(如果适用)

5.8.3 联合国

说明

TypeScript方法类型如果从静态方法调取的查询中返回,就会被放弃.

  • 重现步骤

我有以下代码(深受[docs]的启发(https://mongoosejs.com/docs/TypeScript/statics-and-methods.html):

从"mongoose"中进口mongoose;

Const用户Schema = 新出道的mongoose. 司马( S) { 名称 :{类型:字符串, 需要: 真}, {\fn华文楷体\fs16\1cHE0E0E0} { 方法:{ 更新Name( 名称: 字符串) { 此. name=名称; 返回此. save (); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn华文楷体\fs16\1cHE0E0E0} 静态 : { 查找ByName( 名称: 字符串) { 返回此. findOne({名称}); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? (三) Const UserModel = mongoose.model ('User', userSchema; ).

const doc = 新的用户模式({名称:'test'}); // 编译正确 doc.updateName ("foo") (中文(简体) ).

const foundDoc = 等待用户Model.findOne({名:'test'}).orfail(; // 编译正确 找到 Doc.update Name ('foo') ; 已找到

const found DocFromStatic = 正在等待用户Model. findByName ('test'. orfail ()); // 方法类型被打破 找到 DocFrom Static.update Name ('foo' ) ;


" found Doc " 变量的 " updateName " 方法键入正确。 “ findDocFromStatic”变量似乎已经失去了打入信息的方法,尽管“ findByName”也只是“findOne()”:

<img宽=""1826"高="486" alt="Image" src="https://GitHub.com/user-attachments/assets/ab2d0fac-d293-4204-bee7-2fc5613d9342"/".

• 预期行为

我希望当问询从静态中发生时, 方法类型会被返回。

我做错什么了吗? 事先谢谢.

内容来源: Automattic/mongoose