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()函数引发了:
BUT
如果我将其更改为静态
public static getIndex()
,我收到错误:'ServerRouter'类型上不存在TS2339'getIndex'
我应该改变什么?
感谢您的反馈
答案 0 :(得分:29)
静态方法存在于类而不是对象实例上。您必须在this.getIndex
函数中将ServerRouter.getIndex
更改为init
。
WebStorm建议如果方法不触及实例的任何状态,则使方法保持静态,因为它表明该方法存在于该类的所有实例的通用级别。 / p>
您可以在TypeScript Handbook中找到有关static
的更多信息(请参阅“静态属性”部分)。