我想在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;
这是解决此问题的推荐方法吗?
答案 0 :(得分:8)
相当古老的讨论,但我最近遇到了同样的问题,发现有一个新的express.d.ts
可以在DefinitelyTyped网站上正确支持express 3。
答案 1 :(得分:2)
您应该能够将此环境函数声明添加到express.d.ts
以获得所需内容。
declare function express(): ExpressServer;
答案 2 :(得分:0)
如果您这样声明express
:import * 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