假设我在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) {
...
}
这对我有用......
// 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) {
//...
};
上面的答案显示在搜索结果中很高,所以我记录了什么对我有用,以防它在类似的情况下帮助某人。
我在我的所有模块上使用Visual Studio代码与// @ts-check
的节点项目。在module:
语法上使用上面的语法打嗝。此外,代码帮助无法正常工作。我花了一段时间,但答案最终很简单
如果我在模块myTypedef
中有typedef myModule
,那么在第二个模块中我需要myModule
mm = require(myModule)
我可以用类似的东西
/** @param {mm.myTypedef} myParamName */