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
- 如何在节点应用程序中使用@ types / node
- 如何在打字稿中重载Node.js Writable end方法
- 使用–module选项在Sublime文本中构build系统configuration
- 插入对象mongodb的私有variables
- mongoose的打字方式…?
- TypeScript并没有在VS 2015中将JavaScript与Node.js TS应用程序结合到单个文件中
- 我可以直接在浏览器中使用Node Package Manager(npm)下载的“.JS”吗?
- 如何获取VS Code intellisense来search多个node_modules文件夹中的打字稿
- Visual Studio Express 2012 for Web vs Web Matrix