[英]Mongoose method scope in TypeScript
我在Mongoose方法的回調函數中有關於對象范圍的問題。 我的員工有“地址”。 當您調用此“方法”時,它將在地址模型中查找地址。
使用Javascript:
employeeSchema.methods.getAddresses = function (callback) {
addressModel.find({ _id: { $in: this.addresses } }, function (err, obj) {
callback(obj);
});
};
我想輸入所有內容,並且函數中的“ this”范圍有問題。 作用域在對象本身上,但是所有示例都顯示“ this”。 它在TypeScript中不起作用,因為它認為它是主類。
打字稿:
employeeSchema.methods.getAddresses = (callback) => {
addressModel.find({ _id: { $in: this.addresses } }, (err, obj) => {
callback(obj);
});
};
驗證存在相同的問題:
accountSchema.path('email').validate(function (email, callback) {
if (this.isNew || this.isModified('email')) {}
}
'this'是回調范圍內的帳戶,但是有沒有辦法將對象實際傳遞給回調?
既然你不想要捕獲的詞法范圍this
,不要使用=>
只需使用function
。
還有一個特征請求申報的含義this
是一個特定類型: https://github.com/Microsoft/TypeScript/issues/229
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.