我希望使用最新版本的TypeScript中的node.js与Express。微软提供的示例中的express.d.ts似乎是建立在3.0.x之前的版本之上的。
在以前的版本中,您可以执行以下操作:
在
var app = express.createServer()
但在3.0.x之后,您应该这样做:
var app = express();
Express.d.ts不支持这个功能...我找到了一个变通方法:我在Express.d.ts中添加了以下行:
export function(): any;
在
app.ts
中,当我想要创建应用程序对象时,我会执行以下操作:var app = <express.ExpressServer>express();
这似乎解决了问题,它可以编译而不出错,同时我也获得了智能提示的支持。然而,这是一种hack(技巧)...首先,为什么我不能像这样写呢?
export function(): ExpressServer;
这是解决此问题的推荐方法吗?
///<reference path='express.d.ts'/> import express = module('express'); import vlcApi = module('vlc-node'); var app = <express.ExpressServer>express();
,而且我在express.d.ts文件中有以下内容:///<reference path='node.d.ts' /> declare module "express" { export function createServer(): ExpressServer; export function static(path: string): any; export function(): any; //this is my hack since export function(): ExpressServer; does not work import http = module("http"); export var listen;
请问您能否澄清一下? - Zoltan ArvaiExpressServer
接口放在了module express
声明内部。这就是为什么它不能像我的例子那样从外部访问。看起来express.d.ts
文件需要重构,将这些接口声明移到外部范围,以便可以添加我展示的环境函数声明。 - joshuapoehls