JSDoc Toolkit - Как указать @param и @property в одной строке - PullRequest
8 голосов
/ 25 июня 2011

Есть ли способ избежать необходимости вводить две отдельные строки для @property и @param, если, как в примере, в конструкторе параметры и свойства имеют одинаковые имена.

/**
 * Class for representing a point in 2D space.
 * @property {number} x The x coordinate of this point.
 * @property {number} y The y coordinate of this point.
 * @constructor
 * @param {number} x The x coordinate of this point.
 * @param {number} y The y coordinate of this point.
 * @return {Point} A new Point
 */
Point = function (x, y)
{
    this.x = x;
    this.y = y;
}

1 Ответ

3 голосов
/ 06 ноября 2011

Вы нет. Это невозможно, поскольку аргументы функции и свойства объекта - это разные переменные, они не могут быть как параметрами функции, так и свойствами объекта. Более того, такая документация только запутает разработчика, но не поможет понять API.

Я бы посоветовал вам не использовать @properties в этой части документации, а использовать @type:

/**
 * Class for representing a point in 2D space.
 * @constructor
 * @param {number} x The x coordinate of this point.
 * @param {number} y The y coordinate of this point.
 * @return {Point} A new Point
 */
Point = function (x, y)
{
    /**
     * The x coordinate.
     * @type number
     */
    this.x = x;

    /**
     * The y coordinate.
     * @type number
     */
    this.y = y;
}

Но на самом деле такая подробная документация бесполезна. То, о чем мы говорим в коде Point.x = x, понятно любому школьнику.

...