Javascript 如何让WebStorm解析功能模块?
WebStorm在解析CommonJS模块作为方法返回的函数(并读取与之相关的JsDoc)方面做得非常好,例如:Javascript 如何让WebStorm解析功能模块?,javascript,node.js,webstorm,jsdoc,commonjs,Javascript,Node.js,Webstorm,Jsdoc,Commonjs,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; /
// utils/valid.js
/**
* Returns true no matter what.
* @param {HTMLElement} element
* @return {boolean}
*/
function isValid(element) {
return true;
}
module.exports.isValid = isValid; // exports property
当另一个文件中需要这样的模块时,在和机制中正确提供这样的功能
// 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
这在我们的项目中非常常见,更改所有
模块。将导出到普通对象不是一个选项。有没有办法在WebStorm中解决此问题?创建一个宏以在两种语义形式之间切换:
如何使用它?请提供完整的样本我在样本中增加了几行,但是我实际使用模块的方式与问题无关-主要的一点是,例如,按下Ctrl+Q应该显示模块的内联文档,无论使用何种方式定义它,我同意Paul S,他如何使用它与问题无关。我也有这个问题,保罗,你有进一步的了解吗?不幸的是没有。然而,我的观点是,尽管上述内容在技术上是正确的,但在架构上是有缺陷的。模块的拆分过于细粒度,但不管粒度如何,最好还是坚持使用方法返回普通对象的约定(即使它只是一个方法)。