2017-08-03 96 views
0

我不知道是否有人能与导入格式帮助导入expressjs为打字稿(我用的是@types,已经安装)ExpressJS与Typescript,导入格式?

我导入这样

import { Application} from "express"; 

所以在我的代码,我可以现在做这个

private expressApp: Application; 

问题是,我想创建一个新的快递应用程序,所以我想我必须做到以下几点,

 this.expressApp = new Application(); 

但它报告一个错误,说它只是一个类型。

我有点迷路,如何正确使用它。

我也想这样做

import * as express from "express"; 

,但现在一切都不愿意去表达,所以我有express.Application这是一个有点难看。它仍然不可能做一个新快报()

任何想法,我要去的地方错了吗?

感谢

回答

1

这类的东西绊倒了我很多,当我正与打字稿交手,问题是你使用的“应用程序”,它实际上只是一个类型定义,而不是对象本身。你想这样的事情:

import * as express from 'express'; 
const app: express.Application = express(); 

app.get('/', function (req, res) { 
    res.send('Hello World!'); 
}); 

app.listen(3000, function() { 
    console.log('Example app listening on port 3000!'); 
}); 

这里我使用express.Application来表示类型。 express.Application只是一个表示类型的接口。否则,您会注意到我的代码与Express "Hello World" example相同:

const express = require('express') 
const app = express() 

app.get('/', function (req, res) { 
    res.send('Hello World!') 
}) 

app.listen(3000, function() { 
    console.log('Example app listening on port 3000!') 
}) 
+0

谢谢。是的,有效的,任何方式来结合进口*明确表达从'快递'和进口{应用程序}从“明确”;在一条线上? – Martin

+0

@Martin可悲的是,如果是“express”,你可以添加第二个导入。你想从键入中删除。但是,由于快速功能是默认导出,您需要创建一个新的应用程序。如果这回答了你的问题,你会介意打勾吗? –