TypeScript中的Mongoose方法范围

我有一个关于在Mongoose方法的callback函数中的对象范围的问题。 我的员工有“地址”。 当你调用这个“方法”时,它会查找地址模型中的地址。

使用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); }); }; 

我有同样的问题与validation:

 accountSchema.path('email').validate(function (email, callback) { if (this.isNew || this.isModified('email')) {} } 

'这'是在callback的范围内的帐户,但有没有办法实际传递对象的callback?

既然你不想捕获词法范围this ,不要使用=> 。 只是使用function

有一个function请求声明this是一个特定types的意思: https : //github.com/Microsoft/TypeScript/issues/229