2013-12-13 292 views
0

我正在將NodeJS + ExpressJS項目轉換爲typescript,並且我從https://github.com/borisyankov/DefinitelyTyped獲得了ExpressJS的Typescript定義。是否有可能在包含「import」的TypeScript項目中包含NodeJS模塊

打字稿之前,我進口快遞與「規定」聲明

var express = require("express") 

不,我需要將其導入的方式,我可以使用打字稿語法和能力,同時確保打字稿編譯器將其編譯爲顯示的語句以上。這是我寫的代碼:

/// <reference path="express.d.ts" /> 
import express = require("express"); 
var app = express.express(); 
app.use(express.logger()); 

然而,這引發錯誤:Unresolved function or method express()在:

var app = express.express(); 
+0

不定義文件尚未聲明'express'命名空間?也許這是導致命名衝突? – thomaux

+0

快速命名空間在那裏。但是它裏面沒有express()函數。我已經手動添加,似乎現在工作。 – EternallyCurious

回答

4

我認爲應該是:

import express = require('express'); 
var app = express(); 

見例如:https://github.com/borisyankov/DefinitelyTyped/blob/master/express/express-tests.ts#L3-L4

+0

嗨,你指出我「express-tests.ts」,我正在使用「express.d.ts」。有什麼不同?我應該添加哪個項目到我的項目中?我最終得到了這個工作,但我不得不手動添加「express()」函數到express.d.ts文件。 – EternallyCurious

+0

你應該導入'express.d.ts'。 'express-tests.ts'文件展示瞭如何在自己的應用程序中使用'express.d.ts'。 – basarat