How can I document the knockout.js view model using jsdoc?

I already tried using namespaces and the @memberOf tag, but in the created API I still don't have classes or methods.

Here is a sample code:

/**
 * Test file
 * @namespace test
 */

/**
 * my view model
 * @class MyViewModel
 * @memberOf test
 */
function MyViewModel() {
    var self = this;

    /**
     * test observable
     * @type {Object}
     * @memberOf test.MyViewModel#
     */
    self.testObservable = ko.observable();

    /**
     * test function
     * @memberOf test.MyViewModel#
     */
    self.testObservable = function() {
        // do something
    };
}
+4
source share
2 answers

Tags @memberofwill work if you used @memberof!. An exclamation point makes jsdoc keep track of what you give it. If you do not use an exclamation mark, jsdoc will decide that it knows better than you and ignore the tag. But use @memberof!still makes it look funky. What you can do is remove the tags @memberofand use @lendsas follows:

/**
 * Test file
 * @namespace test
 */

/**
 * my view model
 * @class MyViewModel
 * @memberOf test
 */
function MyViewModel() {
    /** @lends test.MyViewModel# */
    var self = this;

    /**
     * test observable
     * @type {Object}
     */
    self.testObservable = ko.observable();

    /**
     * test function
     */
    self.testObservable = function() {
        // do something
    };
}
+2

jsdoc , self. JSDoc , , , , . ( ).

jsdoc, :

/**
 * Test file
 * @namespace test
 */

/**
 * my view model
 * @class MyViewModel
 * @memberOf test
 */
function MyViewModel() {
    var self = this;

    /**
     * test observable
     * @type {Object}
     * @memberOf test.MyViewModel#
     */
    var testObservable = ko.observable();
}

, :

/**
 * Test file
 * @namespace test
 */

/**
 * my view model
 * @class MyViewModel
 * @memberOf test
 */
function MyViewModel() {
    var self = this;

    /**
     * test observable
     * @type {Object}
     * @memberOf test.MyViewModel#
     */
    var testObservable = self.testObservable = ko.observable();
}

, , : (

yuidoc, javascript, , . yuidoc:

/**
 * Test file
 * @namespace test
 */

/**
 * my view model
 * @class MyViewModel
 * @memberOf test
 */
function MyViewModel() {
    var self = this;

    /**
     * test observable
     * @property testObservable
     * @type {Object}
     */
    self.testObservable = ko.observable();

    /**
     * test function
     * @property testObservable
     */
    self.testObservable = function() {
        // do something
    };
}
+1

Source: https://habr.com/ru/post/1534819/


All Articles