2011-06-25 10 views
8

Czy istnieje sposób na uniknięcie konieczności wpisywania dwóch oddzielnych linii dla @property i @param, jeśli, jak w przykładzie, na konstruktorze parametry i właściwości są identycznie nazwane.JSDoc Toolkit - Jak określić @param i @property na tej samej linii

/** 
* 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; 
} 

Odpowiedz

3

Nie. Jest to niemożliwe, ponieważ argumenty funkcji i właściwości obiektu - są to różne zmienne, nie mogą być zarówno parametrami funkcji, jak i właściwościami obiektu. Co więcej, taka dokumentacja wprawiłaby w błąd programistę, ale nie pomaga zrozumieć interfejsu API.

Radziłbym nie używać @properties w tym kawałku dokumentacji, ale używać @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; 
} 

Ale w rzeczywistości takie szczegółowa dokumentacja jest bezużyteczny. O czym rozmawiamy w kodzie Point.x = x jest jasne dla każdego ucznia.

+0

Moja sugestia jest taka, że ​​deklarujesz tylko właściwości jsdoc z konstruktora, tak jak masz (nawet jeśli później zostanie przydzielony później, unikaj tworzenia ich z przypadkowych funkcji w klasie. –

Powiązane problemy