使用Express()和TypeScript

时间:2012-10-03 13:56:05

标签: node.js express typescript

我想在TypeScript中使用最新版本的Expess和node.js. microsoft在样本中提供的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中,当我想创建app对象时,我会执行以下操作:

var app = <express.ExpressServer>express();

这似乎解决了这个问题,它正在编译而没有错误,而且我得到了intellisense支持。然而,这是一个黑客...首先为什么我不能写这样的东西?

export function(): ExpressServer;

这是解决此问题的推荐方法吗?

4 个答案:

答案 0 :(得分:8)

相当古老的讨论,但我最近遇到了同样的问题,发现有一个新的express.d.ts可以在DefinitelyTyped网站上正确支持express 3。

答案 1 :(得分:2)

您应该能够将此环境函数声明添加到express.d.ts以获得所需内容。

declare function express(): ExpressServer;

答案 2 :(得分:0)

如果您这样声明expressimport * as express from "express",则将在运行时收到此错误,并这样声明:const express = require "express",不会引发任何错误。

此外,不要忘记将app变量或属性类型声明为express.Application

答案 3 :(得分:-3)

这是一个示例项目 - TypeScript中的Express 4.x应用程序:https://github.com/czechboy0/Express-4x-Typescript-Sample