WebStorm可以很好地解析从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
Run Code Online (Sandbox Code Playgroud)
然后,当在另一个文件中需要这样的模块时,在代码完成和内联文档机制中正确地提供这样的功能.
// main.js
var isValid = require('./utils/isValid').isValid; // works well
Run Code Online (Sandbox Code Playgroud)
但是,当函数作为模块导出直接返回时,这会失败
// utils/valid.js
module.exports = isValid; // exports object is a function
Run Code Online (Sandbox Code Playgroud)
因此,当需要这样的模块时,WebStorm似乎不知道它是什么:
// main.js
var isValid = require('./utils/isValid'); // doesn't work
Run Code Online (Sandbox Code Playgroud)
这在我们的项目中非常常见,并且不能将所有内容更改module.exports为普通对象.有没有办法在WebStorm中解决这个问题?