【发布时间】:2017-03-31 18:08:22
【问题描述】:
我有一个这样的模块:
/**
* Do something with target. A bunch of these methods
* @param target
*/
function doJob(target) {
target.something = 'value';
}
module.exports = {
doJob
};
WebStorm 正确识别 doJob 已被此模块导出,并提供了很好的智能感知。
现在我想添加工具,以便可以将所有导出的方法与目标绑定。
module.exports = {
doJob
};
const oldExports = Object.assign({}, module.exports);
module.exports.bind = function (target) {
const newExports = {};
for (var key in oldExports) {
newExports[key] = oldExports[key].bind(null, target);
}
return newExports;
};
这个想法是消费者可以获得正常的导出并以程序风格使用函数,或者他们可以获得相同的一组函数,绑定到他们的本地target。
我现在的问题是,我如何告诉WebStorm(使用JsDoc)bind()函数的返回值和module.exports是一样的?
我尝试过的事情:
@returns {module.exports}@returns {exports}- 在顶部声明
@module,然后声明@returns那个符号 -
@alias- 不幸的是,这似乎完全接管了符号,所以现在我在module.exports上没有任何东西了
我意识到这不是世界末日。但是我觉得我离让所有东西都融合在一起太近了,这让我发疯了。
知道在 JsDoc 中执行此操作的正确方法是什么,以及 WebStorm / PhpStorm 知道如何使用它的额外好处吗?
【问题讨论】:
标签: javascript webstorm intellisense commonjs jsdoc