【问题标题】:Mongoose hooks not working with TypescriptMongoose 钩子不适用于 Typescript
【发布时间】:2018-02-21 07:07:00
【问题描述】:

那么有谁知道为什么我在使用 mongoose 钩子并引用 this 时可能会收到 Typescript 错误。我没有使用箭头函数,我知道它的词法范围问题,但即使是这样的匿名函数:

UserSchema.pre("save", function(next) {
    console.log(this.password);
    next();
});

确切的错误信息是

'this' implicitly has type 'any' because it does not have a type annotation.

有人知道如何解决这个问题吗?

顺便说一句,我使用的是 Typescript 2.5.2 / NodeJS 8.2.1

谢谢!

【问题讨论】:

标签: typescript mongoose


【解决方案1】:

试试这个:

schema.pre("save", function(this: UserModel, next: any) {
  console.log(this.password);
  next();
});

我认为您收到错误是因为您可能有一个 typescript 配置来检查隐式任何内容。如果您在钩子函数的参数中键入“this”,则错误应该得到解决。

【讨论】:

  • 这行得通!它让我失望,因为我没有看到允许将上下文作为类型化参数传递的回调签名。不管怎样,谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多