我应该指出我正在使用 VSCode 作为我的 IDE
问题
如何记录一个 @typedef
使其成为 @namespace
的成员? (我对 @module
或其他 JSDoc 标签持开放态度来实现这一点,但似乎与这种方法越来越接近)
我正在做一个 React 项目,并将我的域对象表示为实体
文件夹结构
- entities/
- group/
- group-actions.js
- group-model.js
- group-reducer.js
- group-selectors.js
- group-service.js
- index.js
index.js
import Actions from './group-actions';
import Model from './group-model';
import reducer from './group-reducer';
import Selectors from './group-selectors';
import Service from './group-service';
/**
* GroupNamespace
* @namespace Group
*/
const Group = {
Actions,
Model,
reducer,
Selectors,
Service,
};
/**
* Group
* @typedef {Object} GroupInstance
* @memberof Group
* @property {Object[]} members
* @property {Object} permissions
*/
export default Group;
现在,我想定义一个接收 GroupInstance
作为 prop 的 React 组件
我希望在该智能感知下拉列表中看到成员
,但没有看到。
现在,如果我将 @property
定义更改为 @property {Group} group
,我会在 @namespace 上获得智能感知
最佳答案
@typedef 的文档位于 https://jsdoc.app/tags-typedef.html#syntax .
我发现你有两个选择:
选项 1 是使用 @typedef
并附加数据类型,并包含单独的 @name
和 @memberOf
选项 1 示例:
/**
* Your description goes here.
* @typedef {type}
* @memberOf module:your/module
* @name yourTypedefName
*/
方案二是省略@name
和@memberOf
,在@typedef
中定义数据类型的完整路径
- https://jsdoc.app/tags-typedef.html
选项 2 示例
/**
* Your description goes here.
* @typedef {Object} module:your/module.yourTypedefName
*/
此外,您还可以将@type 和类型一起放在单独的行中,然后对于选项 1,带有 @typedef 的行将只包含 @typedef。
关于javascript - 如何将@typedef 记录为@memberof a @namespace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49600102/