Как документировать @typedef как @memberof @namespace

Я должен указать, что я использую 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;

Теперь я хотел бы определить компонент React, который получает GroupInstance в качестве реквизита.

введите здесь описание изображения

Я ожидал увидеть members в раскрывающемся списке IntelliSense, но этого не произошло.

Теперь, если я изменю определение @property на @property {Group} group, я получу intellisense в @namespace.

введите здесь описание изображения


person ken4z    schedule 01.04.2018    source источник


Ответы (1)


Документация по @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
*/

Вариант 2 — опустить @name и @memberOf и определить полный путь с типом данных в @typedefhttps://jsdoc.app/tags-typedef.html Пример варианта 2

/**
 * Your description goes here.
 * @typedef {Object} module:your/module.yourTypedefName
 */

Кроме того, вы можете поместить @type как отдельную строку вместе с типом, тогда для Варианта 1 ваша строка с @typedef будет просто иметь @typedef.

person Akul Aggarwal    schedule 19.09.2019