我可以在实例上获得回调函数,以在纯Typescript项目中工作。当我尝试使用Typescript在Node项目中执行相同的操作时,当我引用此内容时,它不再指向我的实例。是Node导致此问题,还是我缺少其他东西。我是Node的新手,我们正在尝试为新项目解决这个问题。
示例:(为了简化示例,我移动了一些代码)
server.ts:
import controller = require('./controllers/locationController');
var locationController = new controller.LocationController(LocationModel.repository);
var unbound = locationController.test;
unbound(); --when this calls locationController.test, that test method no longer has access to anything on this
locationController.ts:
export class LocationController {
private _x = 1;
_repository: mongoose.Model<locationModel.ILocation>;
constructor(repository: mongoose.Model<locationModel.ILocation>) {
this._repository = repository;
}
test = () => {
var t = this._x; --This is where the issue is. _x is undefined even though I am using the arrow notation
}
}
最佳答案
是Node导致此问题,还是我缺少其他东西
您对arrow
和this
的理解是正确的。因此,您提供的代码可以正常工作:
解
该错误存在于其他代码中。追踪下来。