7

我想在 TypeScript 中使用最新版本的 Expess 和 node.js。microsoft 在示例中提供的 express.d.ts 似乎是基于 3.0.x 之前的版本构建的。在以前的版本中,你可以做

var app = express.createServer()

但在 3.0.x 之后你应该这样做:

var app = express();

Express.d.ts 不支持这个......我发现了一个 hack:我在 Express.d.ts 中添加了以下行:

export function(): any;

app.ts我想创建应用程序对象时,我执行以下操作:

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

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

export function(): ExpressServer;

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

4

4 回答 4

9

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

于 2013-08-14T02:42:31.000 回答
2

您应该能够添加此环境函数声明以express.d.ts获得您想要的。

declare function express(): ExpressServer;

于 2012-10-03T14:09:51.090 回答
0

如果你express这样声明:import * as express from "express",你会在运行时得到这个错误,这样声明:const express = require "express",不会抛出任何错误。

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

于 2019-05-01T11:32:23.627 回答
-4

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

于 2015-03-22T18:12:05.073 回答