Spec-Zone.ru › JSDoc

@memberof

Содержание

  • Синтаксис
  • Обзор
  • Примеры
  • Связанные ссылки

Синтаксис

  • @memberof <parentNamepath>
  • @memberof! <parentNamepath>

Обзор

Тег @memberof идентифицирует символ-член, относящийся к родительскому символу.

По умолчанию тег @memberof документирует символы-члены как статические члены. Для внутренних и экземпляров членов вы можете использовать пунктуацию области видимости после имени пути или добавить тег @inner или @instance.

Тег «принудительного» @memberof, @memberof!, заставляет объект быть задокументированным как принадлежащим к определённому родителю, даже если он, по-видимому, имеет другого родителя.

Примеры

В следующем примере функция hammer обычно документируется как глобальная функция. Это потому, что она на самом деле является глобальной функцией, но также является членом пространства имён Tools, и именно так вы хотите ее документировать. Решение — добавить тег @memberof:

Использование @memberof
/** @namespace */
var Tools = {};

/** @memberof Tools */
var hammer = function() {
};

Tools.hammer = hammer;

Для экземпляров членов класса используйте синтаксис «@memberof ClassName.prototype» или «@memberof ClassName#». В качестве альтернативы, вы можете объединить «@memberof ClassName» с тегом «@instance».

Использование @memberof с прототипом класса
/** @class Observable */
create(
    'Observable',
    {
        /**
         * This will be a static member, Observable.cache.
         * @memberof Observable
         */
        cache: [],

        /**
         * This will be an instance member, Observable#publish.
         * @memberof Observable.prototype
         */
        publish: function(msg) {},

        /**
         * This will also be an instance member, Observable#save.
         * @memberof Observable#
         */
        save: function() {},

        /**
         * This will also be an instance member, Observable#end.
         * @memberof Observable
         * @instance
         */
        end: function() {}
    }
);

Следующий пример использует принудительный тег @memberof, «@memberof!», для документирования свойства объекта (Data#point), которое является экземпляром члена класса (Data).

Когда вы используете тег @property для документирования свойства, вы не можете ссылаться на свойство с помощью его длинного имени. Мы можем принудительно сделать свойство ссылочным, используя «@alias» и «@memberof!», чтобы сообщить JSDoc, что Data#point.y должен быть документирован как член "point.y" «Data#», а не как член "y" "point" «Data#».

Использование @memberof! для свойств объектов
/** @class */
function Data() {
    /**
     * @type {object}
     * @property {number} y This will show up as a property of `Data#point`,
     * but you cannot link to the property as {@link Data#point.y}.
     */
    this.point = {
        /**
         * The @alias and @memberof! tags force JSDoc to document the
         * property as `point.x` (rather than `x`) and to be a member of
         * `Data#`. You can link to the property as {@link Data#point.x}.
         * @alias point.x
         * @memberof! Data#
         */
        x: 0,
        y: 1
    };
}

Связанные ссылки

@name

© 2011–2017 the contributors to the JSDoc 3 documentation project
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://jsdoc.app/tags-memberof.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API