2014-12-28 42 views
3

我正在努力更新一個簡單的NodeJS + ExpressJS應用程序以使用TypeScript。我有它的工作,但我有適合添加一些額外的數據註釋來添加額外的類型檢查和代碼時自動完成/ IntelliSense在Visual Studio & WebStorm。顯式指定Express'「應用程序,請求,響應的類型」

我有最新的express.d.ts引用。我還創建了快速的應用程序:

var app = express(); 

一切工作......但我似乎無法弄清楚如何添加類型信息的應用爲自動完成幫助,當你鍵入類似

app.get('/',function(req,res){}); 

我試着用Express.Application(和.Request註釋應用(和REQ & 資源.Response)但這不是解決。看着類型定義,我很困惑如何寫typedef創建內部「e」參考...

驚訝我找不到任何人要求&解決此問題,因爲express.d.ts typedef是更新的ExpressJS 4.0(以前我發現引用ExpressServer但今天在座的,是不是。

想法?上的東西沒有成功而「工作

回答

17

經典案例,但最後當你張貼一個問題尋求幫助,你馬上就知道了「。

解決方案: 當您想使用其中一種類型時,必須導入模塊,因爲typedef位於typedef內的命名模塊中。

在上面的代碼(即住在我的app.ts),我正上應用類型的註釋。因爲我在文件頂部import語句爲import express = require('express');,我可以註釋REQ & 資源 PARAMS這樣的:

app.get('/', function(req:express.Request, res:express.Response){}); 

在其他文件中,在那裏我正試圖獲得對類型註釋應用程序,我錯過了文件頂部的導入語句。一旦加入,我可以添加註釋爲該以及像:

public init(app: express.Application){} 
7

在任何情況下,在這個問題上絆倒在2017年,用更現代的TS。你應該能夠只是npm install @types/express,然後它應該只是工作。