2014-03-31 56 views
2

我想確定使用JSDoc 3來記錄Backbone.Model的屬性和選項參數的最佳方法。我如何JSDoc骨幹屬性/選項

理想情況下,我想能夠做到:

/** 
    * @class 
    * @attribute {string} foo the foo attribute 
    * @attribute {integer} bar the bar attribute 
    * @option {bolean} baz the baz option 
    * @option {string} qux the qux option 
    */ 
var MyModel = Backbone.Model.extend({ 
    ... 
}); 

但是存在JSDoc 3沒有@option標籤,並@attribute並不意味着同樣的事情作爲一個骨幹屬性。從理論上講,我認爲人們可以以某種方式在我的僞代碼中製作自定義標籤,但我找不到任何現有的插件,並且關於如何創建自定義標籤的文檔幾乎不存在。我的問題是:我的僞代碼(使用實際的JSDoc 3標籤)的下一個最好的東西是什麼?

注意:這個問題有幾個類似的問題(How to jsdoc annotate BackboneJS code?,How do I document AMD + Backbone project with JSDoc3),但他們都專注於獲取所有可識別的Backbone對象的「大圖片」。我找不到具體解決屬性/選項問題的任何問題。

回答

1

我最終在這個(非骨幹網專用)堆棧溢出線程中找到了答案:How to describe "object" arguments in jsdoc?。總而言之,您可以通過創建初始參數(例如,@param attributes),然後製作@param attributes.foo@param options.bar標籤來記錄屬性/選項。換句話說,我的僞代碼可以被正確的語法如下重新做:

/** 
    * @class 
    * @param {Object} attributes 
    * @param {string} attributes.foo the foo attribute 
    * @param {integer} attributes.bar the bar attribute 
    * @param {Object} options 
    * @param {boolean} options.baz the baz option 
    * @param {string} options.qux the qux option 
    */ 
var MyModel = Backbone.Model.extend({ 
    ... 
}); 

我仍然認爲,這將會是最好,如果有某種JS​​Doc3骨幹插件,允許@attribute/@option標籤,所以如果有人將其作爲答案發布,我會很樂意接受這個答案,而不是我自己的答案。