为什么 TypeScript class 属性 未定义

Why TypeScirpt class property undefined

我有以下代码:-

class FeedbackController {

  public homePage(req, res){
    this.test();
    res.send('Welcome to feedback service');
  }
 
  private test(){
    console.log('test called');
  }
}

export default new FeedbackController();

是这样叫的:-

import FeedbackController from '../controller/feedbackController';

    const routes = (app) => {
        app.route('/')
        .get(FeedbackController.homePage);

    };

    export default routes;

我收到错误:-

TypeError: Cannot read property 'test' of undefined

怎么了

这不是 TS 问题,请检查 this 在 JS here 中的工作方式。

作为解决方案,将路由替换为

.get((req, res) => FeedbackController.homePage(req, res))

.get(FeedbackController.homePage.bind(FeedbackController))