2013-11-27 3 views
17

Я пытаюсь документировать свою программу синтаксисом jsdoc для себя и людей, которым придется смотреть на мой код. Я также пытаюсь улучшить свои навыки. Для параметра типа jQuery я немного озадачен. Я знаю, что это объект, но довольно распространенный в моей программе, поэтому я должен сначала объявить typedef для типа jQuery, а затем использовать его как свой тип параметра. Поэтому я спрашиваю, будет ли это правильным способом?Каков правильный способ документировать тип параметра jQuery с помощью jsDoc

/** 
    * DOM object referenced by jQuery 
    * @typedef {jQuery} $jQueryDomObject 
    */ 

    /** 
    * SOAP call that does ... 
    * 
    * @param {string} code Some desc ... 
    * @param {callback} fnctVa Some desc ... 
    * @param {$jQueryDomObject} $attrib Input field that ... 
    */ 
    myfunction = function (code, fnctVa, $attrib) {}; 

Update: также можно найти на SO этот вопрос, несколько похожи: How can I get jsdoc to mark my param as a jquery object?

+0

Правильная вещь не делает мыльный вызов с использованием объекта jQ и разделение проблем. Просто говорю. Тем не менее интересный вопрос. –

+0

Хорошо, я займусь этим. Вместо этого вы предлагаете шаблон? –

+0

Разделение проблем - это принцип, а не шаблон. Идея в этом случае (применима к более чем GUI) заключается в том, что ваша логика представления и бизнес-логика не должны смешиваться подобным образом. Некоторые общие шаблоны проектирования, которые решают эту проблему, являются медиатором, наблюдателем и эмитентом событий. Некоторые архитектурные шаблоны, которые решают эту проблему, - MVC, MVVM и MVP. –

ответ

16

Для параметра, который является объектом JQuery, я часто просто сделать:

@param {jQuery} foo 

И не далее определить что такое jQuery. Это хорошо известно. Тем не менее, если вы хотите, вы можете сделать это с JSDoc 3:

/** 
* jQuery object 
* @external jQuery 
* @see {@link http://api.jquery.com/jQuery/} 
*/ 

/** 
* SOAP call that does ... 
* 
* @param {string} code Some desc ... 
* @param {callback} fnctVa Some desc ... 
* @param {external:jQuery} $attrib Input field that ... 
*/ 
var myfunction = function (code, fnctVa, $attrib) {}; 
3

Я также видел на github/js3doc:

@param {jQuery object} obj The jQuery object you're looking for. 

или github/js3doc

@param {module:jquery} jquery Some desc... 
Смежные вопросы