7
爲了避免在我的JavaScript代碼中使用new
,我編寫了工廠來創建對象。用JSDoc記錄工廠
我已經嘗試了多種組合,並且給了我最滿意的結果之一是:
/**
* Document module
* @module app/document
*/
(function() {
'use strict';
/**
* Factory that creates a document object.
* @alias module:app/document.factory
* @return {document}
*/
function document() {
/**
* Get document id
* @method id
* @return {String}
*/
var id = function id() {...},
api = {
id: id
};
return api;
}
/**
* This module exports the {@link module:app/document.factory|factory} function.
*/
module.exports = document;
}());
的問題,這些意見是沒有定義document
對象。因此,我不能在另一個對象中引用此對象,並且在擴展此對象時我無法繼承它的文檔。
什麼是適當的方式來記錄這種類型的對象?
如果我使用@typedef
標籤,我得到的靜態factory
方法 和document
對象正確記錄 而是由JSDoc不會產生id
方法的文檔:
/**
* Document module.
* @module app/document
*/
(function() {
'use strict';
/**
* Factory that creates a document object.
* @function module:app/document.factory
* @return {document}
*/
function factory(agent) {
/**
* @callback document~id
* @returns {String}
*/
var id = function id() {...},
/**
* @typedef document
* @property {document~id} id
*/
document = {
id: id
};
return document;
}
module.exports = factory;
}());
儘量不要喲使用保留的關鍵字作爲文檔或功能的ID – Sagi
使用@typedef - 這將允許您引用它 –
@ elad.chen我編輯了問題以嘗試與@ @ typedef',但我沒有得到預期的結果。 – goriol