如何声明与 ESLint 一起使用的 mongoose 静态方法

dcs*_*san 5 mongoose node.js eslint mongoose-schema

使用 Mongoose ORM 进行 MongoDB

我声明了一个猫鼬静态方法,如下所示:

ConvoDataSchema.statics.randomItem = async function () { ... }
Run Code Online (Sandbox Code Playgroud)

然后用它创建一个模型

const ConvoData = mongoose.model('ConvoData', ConvoDataSchema)
Run Code Online (Sandbox Code Playgroud)

但后来当我想调用该方法时:

let convoData = await ConvoData.randomItem()
Run Code Online (Sandbox Code Playgroud)

我的 linter 不知道ConvoDataMongoose 已经修补了这个神奇的方法。

我如何声明这些方法,以便 Linter (TSLint / VSCode Intellisense) 可以正确发现这些方法?

小智 -1

如果完全像这样声明:

ConvoDataSchema.statics.randomItem = async function () {
const ConvoData = mongoose.model('ConvoData', ConvoDataSchema)
Run Code Online (Sandbox Code Playgroud)

它不会工作,因为该方法没有关闭。您应该尝试关闭该方法。此外,该方法到底返回什么,这样我们就可以正确地调试该方法。