JsDoc和WebStorm:参考导出
JsDoc and WebStorm: Refer to exports
我有这样一个模块:
/**
* 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}
声明 -
@alias
-不幸的是,这似乎完全接管了符号,所以现在我不再有任何在module.exports
@module
在顶部,然后@returns
符号有谁知道在JsDoc中做这件事的正确方法是什么,加上WebStorm/PhpStorm将知道如何使用它的额外好处?
好的,我想我明白了。
function doJob(target) {
target.something = 'value';
}
class JobsModule {
constructor() {
Object.assign(this, /** @lends {JobsModule.prototype} */ {
doJob,
// other exports go here
});
}
}
module.exports = new JobsModule();
/**
* @return {JobsModule}
*/
module.exports.bind = function (target) {
const newExports = {};
for (var key in new JobsModule()) {
newExports[key] = oldExports[key].bind(null, target);
}
return newExports;
};
将所有东西声明为类,然后在需要使用它的时候创建它。效率不高,但可能没什么大不了的。
相关文章:
- 相位器状态未捕获参考错误
- 聚合物0.5.5:核心列表中的条件模板和/或模板动态参考
- Javascript袖珍参考,第121页:这是怎么回事;猴子补丁”;方法应该有效
- 如何配置WebStorm以正确格式化生成器函数
- 防止“;jQuery(html)"防止触发浏览器请求图像和其他参考内容
- Rails 4资产管道Heroku生产javascript参考问题
- 使用Browserify和Typescript的源映射进行Webstorm调试
- 在参考行中显示多选选项
- 外部图书馆与“<参考路径=“;用于WebStorm中的TypeScript
- WebStorm,使用Node Supervisor(因此不必在每次代码更改后重新启动)
- Ember.js:未在组件'中渲染的模型的计算属性;关于变更的参考
- 实际参考和使用HTML5捕获的图像
- 我该如何解决这个问题;参考网格”;在JavaScript中完成的对象数
- 参考Firefox插件's install.rdf em:xul文件中的版本
- 角度参考误解
- WebStorm /usr/local/bin/node --debug-brk=55834 --nolazy app.
- 在呈现网页时复制网页,而不考虑参考底图的来源
- 如何将现有项目保存为WebStorm中的项目模板
- 让 WebStorm 识别后端和前端 JavaScript 文件
- JsDoc和WebStorm:参考导出