我可以在实例上获得回调函数,以在纯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导致此问题,还是我缺少其他东西


您对arrowthis的理解是正确的。因此,您提供的代码可以正常工作:





该错误存在于其他代码中。追踪下来。

07-28 06:00