jsdoc:来自其他模块的引用typedef-ed类型

问题描述 投票:6回答:2

假设我在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) {
  ...
}
jsdoc jsdoc3
2个回答
6
投票

这对我有用......

// 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) {
  //...
};

0
投票

上面的答案显示在搜索结果中很高,所以我记录了什么对我有用,以防它在类似的情况下帮助某人。

我在我的所有模块上使用Visual Studio代码与// @ts-check的节点项目。在module:语法上使用上面的语法打嗝。此外,代码帮助无法正常工作。我花了一段时间,但答案最终很简单

如果我在模块myTypedef中有typedef myModule,那么在第二个模块中我需要myModule mm = require(myModule) 我可以用类似的东西 /** @param {mm.myTypedef} myParamName */

© www.soinside.com 2019 - 2024. All rights reserved.