Skip to content Skip to sidebar Skip to footer

How To Jsdoc Multiple Inheritance Or Mixins?

How do I document mixins or multiple inheritance? /** * @class Parent */ function Parent() { } Parent.prototype.parentTest = 5; /** * @class Mixin */ function Mixin() { } Mi

Solution 1:

Multiple @augments are actually supported by the JsDoc Toolkit (I haven't tried, but their unit tests suggest so, search for "multiple").

For Mixins you can make use of @lends and @borrows, see the examples here: http://code.google.com/p/jsdoc-toolkit/wiki/CookBook

Solution 2:

How about:

@mixin [<MixinName>]

Add to any objects that get mixed into:

@mixes <OtherObjectPath>

Pulled from documentation link:

/**
 * This provides methods used for event handling. It's not meant to
 * be used directly.
 *
 * @mixin
 */varEventful = {
    /**
     * Register a handler function to be called whenever this event is fired.
     * @param {string} eventName - Name of the event.
     * @param {function(Object)} handler - The handler to call.
     */on: function(eventName, handler) {
        // code...
    },

    /**
     * Fire an event, causing all handlers for that event name to run.
     * @param {string} eventName - Name of the event.
     * @param {Object} eventData - The data provided to each handler.
     */fire: function(eventName, eventData) {
        // code...
    }
};


/**
 * @constructorFormButton
 * @mixesEventful
 */varFormButton = function() {
    // code...
};
FormButton.prototype.press = function() {
  this.fire('press', {});
}
mix(Eventful).into(FormButton.prototype);

Post a Comment for "How To Jsdoc Multiple Inheritance Or Mixins?"