userSchema.pre('save',(next)=>{
if(!this.isModified('password')){
return next();
}
this.password = user.encryptPassword(this.password);
next();
})
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,打字稿编译器告诉我“this”是“globalThis”的类型。然而,在 JavaScript 中,我们总是认为它具有“mongoose.Document”类型。这里我想访问某个 mongoose.Document 对象的“isModified”方法,我们只能使用“this”来访问它。如何让打字稿编译器知道或考虑“this”的类型为 mongoose.Document ?
这里的问题是您使用箭头函数。箭头函数会将实际上下文带入底层函数。解决方案是删除箭头函数的使用,以便应用函数的自然上下文。喜欢 :
userSchema.pre('save', function (next) {
if(!this.isModified('password')){
return next();
}
this.password = user.encryptPassword(this.password);
next();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1247 次 |
| 最近记录: |