在WebStorm中使用supertest会产生“参数types不能分配给参数types”和“未parsing的函数或方法”

我在WebStorm IDE中开发了一个nodejs项目。 我使用摩卡超单元作为我的unit testing框架。

WebStorm显示了两个警告: 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但没有发生任何事情下载和安装supertest库。 所以我直接从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); }); }); 

我如何摆脱这些警告?

适合我(WebStorm 2016.2):

在这里输入图像说明

启用库: Node.js CoreECMAScript 6HTMLHTML5/ECMAScript5Jasmine Definitely Typed 。 后者实际上并不是必需的,因为WebStorm可以从Mocha node_modules中parsing' describe() '等,但是可以避免检查茉莉花东西丢失的导入情况。

似乎你的项目中有一些定义与你的request定义相冲突。 当您按Ctrl +点击request时,您采取了哪些代码?