(以下所有文件也在此GitHub个回购中)
我目前正在开发一个具有以下结构的节点模块:
- some-module
- foo.js
- objects.js
- index.js
foo.js 包含一个构造函数,该函数将通过module.exports = ConstructorFunction
导出:
'use strict';
function Foo(someVar) {
this.bar = function () {
return someVar;
};
}
Foo.prototype.fooBar = function () {
return 'FooBar';
};
Object.defineProperty(Foo.prototype, 'someProp', { value: 'Hello World!' });
module.exports = Foo;
想象一下,在一个包中有很多文件,比如foo.js,因为这是自动生成的代码(> 50个文件)。
objects.js 需要像foo.js这样的所有文件,并将它们导出到一个对象中,如下所示:
'use strict';
module.exports = {
Foo: require('./foo')
};
(同样在这里:如果有> 50个文件,objects.js将包含50个定义,如上所示)
index.js 仅导出所需的objects.js文件:module.exports = require('./objects');
现在需要的是以下用法:
'use strict';
var someModule = require('./some-module');
// How to get IntelliSense for constructor function and x?
// Without (!) adding /** @type {Foo} */ here!
var x = new someModule.Foo('Hello!');
console.log(x.someProp);
console.log(x.fooBar());
console.log(x.bar());
是否有可能为new someModule.Foo()
获取WebStorm IntelliSense以及生成的实例x
?理想情况下,如果不为x
添加类型注释,它就有可能(使用它,它会像魅力一样工作)。
我驳回了此示例中的所有jsdoc以重新开始。
提前致谢!