語法
@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 會相對於 trackr.CookieManager 來詮釋 `this` 關鍵字,因此 "value" 方法的名稱路徑為 "trackr.CookieManager#value"。
Klass('trackr.CookieManager',
/**
* @class
* @alias trackr.CookieManager
* @param {Object} kv
*/
function(kv) {
/** The value. */
this.value = kv;
}
);
您也可以將 @alias 標籤與在立即呼叫函式表達式 (IIFE) 中建立的成員一起使用。@alias 標籤會告訴 JSDoc 這些成員在 IIFE 的範圍之外公開。
/** @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 標籤的替代方案。
// 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;
})();