Подтвердить что ты не робот

Как jsdoc аннотировать код BackboneJS?

Кто-нибудь когда-либо документировал код BackboneJS с JSDoc?

У меня возникают проблемы с аннотацией конструкций Backbone, таких как:

User = Backbone.Model.extend({

    defaults: { a: 1 },

    initialize: function () {
        // ...
    },

    doSomething: function (p) {
        // ...
    }
});

Любые советы приветствуются. Спасибо.

4b9b3361

Ответ 1

Я думаю, что это работает так, если вы говорите об инструменте JSDoc Toolkit:

User = Backbone.Model.extend(
/** @lends User.prototype */
 {
  /**
   * @class User class description
   *
   * @augments Backbone.Model
   * @constructs
   *
   * Text for the initialize method
   */
    initialize: function() {}
})

Важным битом является позиция тега @lends!

Это может быть немного сложно, но если это не сработает, попробуйте другие примеры: http://code.google.com/p/jsdoc-toolkit/wiki/CookBook

Ответ 2

chris_b ответил мне очень много, образец, а также ссылку. Однако мне пришлось отбросить аннотацию @class или создать две записи для этого класса. Кроме того, я добавляю этот ответ, чтобы показать, как аннотировать статические члены класса (константы уровня класса).

(Мы используем require.js.)

define([
    'jquery', 'lodash', 'backbone'
], function($, _, Backbone) {
    "use strict";

    /**
     * Enumeration of constants that represent the different types of Hedgehogs.
     * @memberof models/Hedgehog
     * @enum {string}
     * @readonly
     */
    var types = { 'type1': 'Type 1', 'type2': 'Type 2' };

    var Hedgehog = Backbone.Model.extend(
    /** @lends models/Hedgehog.prototype */
    {
        /**
         * This is the model for Hedgehogs.
         *
         * @augments external:Backbone.Model
         * @constructs
         */
        initialize: function() {
            // your code
        },

        // some more methods
    }, {
        // static class members
        "types": types
    });
    return Hedgehog;
});