2013-12-13 291 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