簡體   English   中英

TypeScript中的貓鼬方法范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM