我正在使用猫鼬和打字稿,当我在要使用的模型上调用 updateOne() 时
someSchema.post<Query>('updateOne', function(doc: IsomeDoc) {
console.log(this)
}
问题是 this
是 Query 类型,如果我禁止打字稿检查器并忽略它,因为它会给我一个错误:
Generic type 'Query<ResultType, DocType, THelpers>' requires between 2 and 3 type arguments.
这是我的架构
const someSchema = new Schema(
{
_id: { type: String, required: true },
status: { type: String },
},
{ timestamps: true }
)
如何在函数内获取正确的 this
类型?经过大量搜索,几乎没有使用带有打字稿和猫鼬的 post hook。
什么是结果类型?
编辑:
在看到@gregooroo 的回答后,我能够通过将其设为 Query<IsomeDoc, IsomeDoc>
来绕过 Query,但它没有为我提供此对象的正确类型。
答案 0 :(得分:1)
对于查询中间件,您需要构造一个 Query 类型,该类型具有此查询应返回的通用类型
someSchema.post<Query<IsomeDoc, IsomeDoc>>('updateOne', function(doc) {
console.log(this)
}