2
我使用Node.js的两个模块和一个脚本,取决于他们:JSDoc类型返回类实例
的lib/Bar.js
module.exports = class Bar {
// ..
};
的lib /美孚。 JS
const Bar = require('./Bar.js');
module.exports = class Foo {
/**
* @return {Bar} A Bar instance
*/
get someBar() {
return new Bar();
}
};
main.js
const Foo = require('./lib/Foo.js');
checkFoo(new Foo());
/**
* @param {Foo} foo A Foo instance
*/
function checkFoo(foo) {
foo. // I get suggestions for Foo properties
foo.someBar. // I get suggestions for Bar properties
checkBar(foo.someBar);
}
/**
* @param {Bar} bar a Bar instance
*/
function checkBar(bar) {
bar. // I get no suggestions!
}
我的代码编辑器Visual Studio代码使用智能感知提供有关Foo和Bar性能,这为foo
类型被声明为Foo
对象checkFoo
方法内正常工作的用户的建议,并foo.someBar
的类型声明在Foo
类中作为Bar
对象。
但是,只要我将此Bar
实例传递给另一个方法(checkBar
),Bar
类型就不会被识别(可能是因为我不需要该模块)。 在JSDoc中是否有一个特殊的语法来指定一个类型在另一个模块中声明?或者这只是VSCode的问题?
这是否帮助HTTP:// usejsdoc。 org/tags-typedef.html? – Lazyexpert
@Lazyexpert不幸的是,没有。 Bar中的所有属性都记录在有效的JSDoc注释中,并且在'checkFoo'方法中显示的建议中,该引用确实有效。我只想知道如何获得'checkBar'中的建议。 –