如何使WebStorm解析哪些功能?

Pau*_* S. 9 javascript commonjs node.js jsdoc webstorm

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中解决这个问题?

Pau*_*tte 0

创建一个宏来在两种语义形式之间切换:

<iframe width="854" height="480" src="https://www.youtube.com/embed/J3YX1WIScAk" frameborder="0" allowfullscreen></iframe>
Run Code Online (Sandbox Code Playgroud)

参考