使用Typescript的Express 4.x

3

我正在尝试使用TypeScript制作一个Express应用程序。

这是我的代码:

//<reference path="./server/types/node.d.ts"/>
//<reference path="./server/types/express.d.ts"/>

import express = require('express');

var app = express();

app.get('/', function(req, res) {
    res.send('hi');
});

app.listen(3000);

并没有什么特别惊人的事情,我只是在尝试让它工作,但不知何故,每当我尝试将这个文件翻译成js文件时,都会出现奇怪的错误,即使我将express版本更改为3.1(express.d.ts仅支持express 3.1而不是4.x)。

有任何想法,在哪里可以获取express 4.x的express.d.ts文件或者我做错了什么吗?

>> error TS2071: Unable to resolve external module ''express''
>> error TS2071: Module cannot be aliased to a non-module type.
>> error TS2095: Could not find symbol 'express'.
2个回答

1
我想指出的是,因为您正在使用express 4.x而类型定义不是最新的,您将会缺少一些对于express 4.x至关重要的关键功能,例如路由器(Routers)。
在这一点上,您有两个选择:更新类型定义或使用。
var express = require('express');

相反,这会削弱 TypeScript 提供的一些优势,但你将来肯定会在其他 Node 模块中遇到这种情况,比如 mongoose。

1

我现在已经更改了这个,但仍然出现“errorTS5037:除非提供'--module'标志,否则无法编译外部模块”的错误。 - Safari
1
好的,我已经明白了。我刚才按照你在这篇文章中给出的指示进行操作: https://dev59.com/12Ml5IYBdhLWcg3wr4nn - Safari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接