typescript v 2.1.0
我写了以下ServerRouter.ts
import {Router, Request, Response, NextFunction} from 'express';
export class ServerRouter {
router: Router;
/**
* Initialize the ServerRouter
*/
constructor() {
this.router = Router();
this.init();
}
/**
* GET index page
*/
public getIndex(req: Request, res: Response, next: NextFunction) {
res.render('index');
}
/**
* Take each handler, and attach to one of the Express.Router's
* endpoints.
*/
init() {
this.router.get('/', this.getIndex);
}
}
// Create the ServerRouter, and export its configured Express.Router
const serverRouter = new ServerRouter().router;
export default serverRouter;
Webstorm检查警告>方法可以是静态的
关于getIndex()函数引发:
但
如果我将其更改为静态
,我收到一个错误:类型'ServerRouter'上不存在TS2339'getIndex'
我应该改变什么?
感谢您的反馈
最佳答案
静态方法存在于类而不是对象实例上。您必须在this.getIndex
函数中将ServerRouter.getIndex
更改为init
。
WebStorm建议将方法保持不变,如果它们不涉及实例的任何状态,因为它建议该方法存在于该类的所有实例通用的级别上。
您可以在TypeScript Handbook中找到有关static
的更多信息(请参见“静态属性”部分)。