类型脚本:方法可以是静态的

typescriptv2.1.0

我编写了以下ServerRouter.ts

从“express”导入{Router,Request,Response,NextFunction};
导出类服务器路由器{
路由器:路由器;
/**
*初始化服务器路由器
*/
构造函数(){
this.router=router();
this.init();
}
/**
*获取索引页
*/
公共getIndex(请求:请求,响应:响应,下一步:NextFunction){
res.render(“索引”);
}
/**
*取下每个处理器,并连接到一个Express.Router
*端点。
*/
init(){
this.router.get('/',this.getIndex);
}
}
//创建ServerRouter,并导出其配置的Express.Router
const serverRouter=new serverRouter().router;
导出默认服务器路由器;

网络风暴检查警告

>方法可以是静态的

有关getIndex()函数的问题:

但是

如果我把它改成静态的

公共静态getIndex()

,我得到一个错误:类型“ServerRouter”上不存在TS2339“getIndex”

我应该换什么

谢谢你的反馈

静态方法存在于类上,而不是对象实例上。您必须在init函数中将this.getIndex更改为ServerRouter.getIndex

WebStorm建议如果方法不涉及实例的任何状态,就将其设为静态,因为它表明该方法存在于该类的所有实例的通用级别

您可以在TypeScript手册(参见“静态属性”部分)中找到有关静态的更多信息

发表评论