如何使WebStorm解决模块是function?

WebStorm在parsing从CommonJS模块返回的函数(并读取与之关联的JsDoc)方面做了很好的工作,例如:

// utils/valid.js /** * Returns true no matter what. * @param {HTMLElement} element * @return {boolean} */ function isValid(element) { return true; } module.exports.isValid = isValid; // exports property 

然后在代码完成和内联文档机制中正确提供这样的function时,在另一个文件中需要这样的模块。

 // main.js var isValid = require('./utils/isValid').isValid; // works well 

但是,如果函数直接作为模块导出返回,则会失败

 // utils/valid.js module.exports = isValid; // exports object is a function 

所以当需要这样一个模块时,WebStorm似乎并不知道它是什么:

 // main.js var isValid = require('./utils/isValid'); // doesn't work 

这在我们的项目中非常常见,并且将所有module.exports更改为普通对象不是一个选项。 有什么办法可以解决这个问题在WebStorm?

创build一个macros以在两种语义forms之间切换:

 <iframe width="854" height="480" src="https://www.youtube.com/embed/J3YX1WIScAk" frameborder="0" allowfullscreen></iframe>