在WebStorm中使用supertest生成'参数类型不能分配给参数类型'和'未解决的功能或方法'

时间:2016-07-11 09:53:21

标签: node.js express mocha webstorm supertest

我有一个在WebStorm IDE中开发的nodejs项目。我使用Mocha和supertest作为我的单元测试框架。

WebStorm显示了2个警告:Argument type app|exports|module.exports is not assignable to parameter type Function|ServerUnresolved function or method get()

我已尝试从File -> Settings -> Languages & Frameworks -> JavaScript -> Libraries -> Download下载并安装超级库,但什么也没发生。所以我直接从https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/supertest下载了它们并手动添加它们,但WebStorm仍然会产生相同的警告。

这是我的server.js代码:

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

app.get('/', (req, res) => {
  res.status(200).end();
});

app.listen(3000);

module.exports = app;

这是我的servertest.js代码:

/* eslint-env mocha*/

const request = require('supertest');
const app = require('../server');

describe('GET /', () => {
  it('should respond OK', (done) => {
    request(app) //Argument type app|exports|module.exports is not 
                 //assignable to parameter type Function|Server
        .get('/') //Unresolved function or method
        .expect(200, done);
  });
});

如何摆脱这些警告?

1 个答案:

答案 0 :(得分:1)

对我来说很好(WebStorm 2016.2):

enter image description here

已启用的库:Node.js CoreECMAScript 6HTMLHTML5/ECMAScript5Jasmine Definitely Typed。后者实际上并不是必需的,因为WebStorm可以从Mocha node_modules解析' describe()等等,但允许避免检查缺少茉莉花进口的进口。

您的项目中似乎有一些与request定义冲突的定义。按住Ctrl键并单击request

时,您采用了哪些代码?