作者:小呀么小果冻 | 来源:互联网 | 2023-05-29 12:19
我正在努力更新一个简单的NodeJS + ExpressJS应用程序以使用TypeScript.我已经有了它的工作,但我正在添加一些额外的数据注释,以在Visual Studio和WebStorm中添加额外的类型检查和代码时自动完成/ IntelliSense.
我已经引用了最新的express.d.ts.我还创建了Express应用程序:
var app = express();
一切正常......但是当我输入类似的内容时,我似乎无法弄清楚如何为app添加类型信息以获取自动完成帮助
app.get('/',function(req,res){});
我尝试使用(和&)注释应用程序(和req&res)Express.Application
,但这并没有解决.看一下类型定义,我对如何编写typedef与创建内部"e"引用感到困惑.......Request
.Response
感到惊讶我找不到任何人要求和解决这个问题,因为express.d.ts typedef已针对ExpressJS 4.0进行了更新(之前我发现了对ExpressServer的引用,但现在还没有.
想法?
1> Andrew Conne..:
经典案例"一段时间没有成功的事情,但当你最后发出一个问题寻求帮助时,你会立即弄明白".
解决方案:当您要使用其中一种类型时,必须导入模块,因为typedef位于typedef中的命名模块中.
在上面的代码中(位于我的app.ts中),我在app上获得了类型注释.因为我在文件顶部的import语句是import express = require('express');
,我可以像这样注释req&res params:
app.get('/', function(req:express.Request, res:express.Response){});
在其他文件中,我试图在应用程序上获取类型注释,我错过了文件顶部的import语句.添加后,我可以添加注释,如:
public init(app: express.Application){}
2> Sam..:
如果有人在2017年绊倒这个问题并使用更现代的TS.你应该能够正义npm install @types/express
然后它应该工作.
其他人绊脚石,请确保您正在执行“ app = express()”,而不是“ app = new express()”。