web-dev-qa-db-ja.com

jsdoc:他のモジュールからtypedef-ed型を参照

Jsモジュールにtypedefタイプがあると仮定します

// somewhere/foo.js
/**
 * @module
 */ 
/**
 * @typedef Foo
 * @type {object}
 * property {string} bar - some property
 */

このタイプを別のモジュールで参照して、jsdocによって生成されたHTMLページで、タイプがtypedef-edモジュールへのリンクとして表示されるようにすることは可能ですか?

これのバリエーションを試しましたが、何も機能しないようです...

// somewhere_else/bar.js
/**
 * @module
 */
/**
 * @param {somewhere/foo/Foo} foo - some param
 */
export default function doStuff(foo) {
  ...
}
8
phtrivier

これは私のために働きます...

// somewhere/foo.js
/**
 * @module foo
 */
/**
 * @typedef module:foo.Foo
 * @type {object}
 * @property {string} bar - some property
 */

そして.。

// somewhere_else/bar.js
/// <reference path="foo.js" />
/**
 * @module bar
 */
/**
 * @param {module:foo.Foo} foo - some param
 */
function doStuff(foo) {
  //...
};
6
Slava Ivanov

上記の回答は検索結果の上位に表示されるため、同様の状況で誰かを助ける場合に備えて、何がうまくいったかを文書化しています。

すべてのモジュールで_// @ts-check_を使用するノードプロジェクトにVisualStudioコードを使用しています。上記の構文を使用すると、_module:_構文に問題が発生します。また、コードアシスタンスが正しく機能しません。しばらく時間がかかりましたが、答えは非常に単純でした。

モジュールmyTypedefにtypedefmyModuleがある場合、myModuleが必要な2番目のモジュールにあります。
mm = require(myModule)
次のようなものを使用できます
_/** @param {mm.myTypedef} myParamName */_

1
Tod