【发布时间】:2015-08-15 02:05:23
【问题描述】:
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
当另一个文件需要这样的模块时,code completion 和 inline documentation 机制中会正确提供这样的功能。
// 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 中解决这个问题?
【问题讨论】:
-
你如何使用它?请提供完整的样本
-
我在示例中添加了几行,但是我实际使用模块的方式与问题无关 - 重点是例如。按下 Ctrl+Q 应该会显示模块的内联文档,无论使用何种方式定义它jetbrains.com/webstorm/help/viewing-inline-documentation.html
-
我同意 Paul S,他如何使用它与问题无关。我也有这个问题,保罗你有没有进一步了解?
-
很遗憾没有。但是,我对此的看法是,尽管上述内容在技术上是正确的,但在架构上存在缺陷。模块的拆分过于细粒度,但无论粒度如何,最好还是坚持返回带有方法的普通对象的约定(即使它只是一个方法)。
标签: javascript node.js webstorm jsdoc commonjs