2017-04-25 63 views
1

我试图获得Express @types的工作,但没有取得任何成功。我正在使用Visual Studio Code,我真的很喜欢自动完成工作。到目前为止,我已经看到,安装@types它也提供了自动完成。无法获得Express @types的工作

的事情,我已经做了:
安装快递与故宫:与NPM npm i -g express
安装快递发电机:npm i -g express-generator
生成与快递发电机项目
cd到项目
npm i
使用npm安装类型:npm i --save-dev @types/express

//文件顶部: var express = require('express');

app.use(function (req, res: Express.Response, next) { 
    var err: any = new Error('Not Found'); 

    //if I try to use res.end() it gets underlined in red 
    res.end('some text'); 
}); 

正如你可以看到Express.Response被vscode建议,所以这有点让我困惑。你怎么能找到Express.Response类型,但不是它的方法?

'有趣'的事实是,在普通的js中一切正常。我错过了什么或做错了什么?

这里是我的tsconfig.json文件,如果它可以帮助:

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
     "outDir": "./dist/out-tsc", 
     "baseUrl": "src", 
     "sourceMap": true, 
     "declaration": false, 
     "moduleResolution": "node", 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "target": "es5", 
     "lib": [ 
      "es2016", 
      "dom" 
     ] 
    } 
} 

任何帮助将非常感激!

+0

'res'是响应...和'end'退出响应...而您应该使用'res.send',这里是文档:http://www.tutorialspoint.com/nodejs/nodejs_response_object .htm –

+0

反正这不是问题D:send()或end()都不起作用。两者都以红色标出。感谢您花时间评论:) – Caius

+0

你有没有做过'var express = require(“express”);'? –

回答

0

通过自己

出于某种原因,解决现在import * as express from 'express'现在给了我正确的completition和类型检查。然而,尝试之前没有奏效。这很奇怪,但是将它解决就可以了。