Spec-Zone.ru › JSDoc

@alias

Оглавление

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

Синтаксис

@alias <aliasNamepath>

Обзор

Тег @alias заставляет JSDoc интерпретировать все ссылки на член как если бы член имел другое имя. Этот тег особенно полезен, если вы определены класс внутри вложенной функции; в этом случае вы можете использовать тег @alias, чтобы сообщить JSDoc, как класс экспонируется в вашем приложении.

Хотя тег @alias может показаться похожим на тег @name, эти теги ведут себя очень по-разному. Тег @name сообщает JSDoc игнорировать любой код, связанный с комментарием. Например, когда JSDoc обрабатывает следующий код, он игнорирует тот факт, что комментарий для bar прикреплён к функции:

/**
 * Bar function.
 * @name bar
 */
function foo() {}

Тег @alias сообщает JSDoc, что член A фактически называется членом B. Например, когда JSDoc обрабатывает следующий код, он распознаёт, что foo является функцией, а затем переименовывает foo в bar в документации:

/**
 * Bar function.
 * @alias bar
 */
function foo() {}

Примеры

Предположим, вы используете фреймворк класса, который ожидает, что вы передадите конструктор функции при определении класса. Вы можете использовать тег @alias, чтобы сообщить JSDoc, как класс будет экспонирован в вашем приложении.

В следующем примере тег @alias сообщает JSDoc интерпретировать анонимную функцию как конструктор класса "trackr.CookieManager". Внутри функции JSDoc интерпретирует ключевое слово this относительно trackr.CookieManager, поэтому метод "value" имеет путь именования "trackr.CookieManager#value".

Использование @alias с анонимной конструкторной функцией
Klass('trackr.CookieManager',

    /**
     * @class
     * @alias trackr.CookieManager
     * @param {Object} kv
     */
    function(kv) {
        /** The value. */
        this.value = kv;
    }

);

Вы также можете использовать тег @alias с членами, созданными внутри выражения функции с немедленным вызовом (IIFE). Тег @alias сообщает JSDoc, что эти члены экспонированы за пределами области видимости IIFE.

Использование @alias для статических членов пространства имён
/** @namespace */
var Apple = {};

(function(ns) {
    /**
     * @namespace
     * @alias Apple.Core
     */
    var core = {};

    /** Documented as Apple.Core.seed */
    core.seed = function() {};

    ns.Core = core;
})(Apple);

Для членов, определённых внутри объекта литерала, вы можете использовать тег @alias в качестве альтернативы тегу @lends.

Использование @alias для объекта литерала
// Documenting objectA with @alias

var objectA = (function() {

    /**
     * Documented as objectA
     * @alias objectA
     * @namespace
     */
    var x = {
        /**
         * Documented as objectA.myProperty
         * @member
         */
        myProperty: 'foo'
    };

    return x;
})();

// Documenting objectB with @lends

/**
 * Documented as objectB
 * @namespace
 */
var objectB = (function() {

    /** @lends objectB */
    var x = {
        /**
         * Documented as objectB.myProperty
         * @member
         */
        myProperty: 'bar'
    };

    return x;
})();

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

  • @name
  • @lends

© 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-alias.html

Spec-Zone.ru

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