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'中的建議。 –