2011-06-27 4 views
2

私が初めてJSDocのを使用していますし、私の構文のビットを好きにいないようだと、私はそれが好きです何かを見つけることができません。jsdoc-toolkitは私の構文が嫌いですか?

(function(){ // issue #1 
    /** 
    * Creates an instance of a Cube animation 
    * @class 
    */ 
    function Cube(x, y, z){ 
     ... 
    } 

    /** @lends Cube.prototype */ 
    cubeFrame.prototype = { // Issue #2 
     ... 
    } 
})(); 

問題#1:何らかの理由でI "警告:文書化しようとしましたsomeMethod未登録のシンボルキューブのメンバーとして。私はそのラッピング関数を残している場合。私はそれをコメントアウトすると、それは動作します。

問題#2:私は私のクラスで少し奇妙な何かをやっていると私はCubeなくcubeFrameに次のオブジェクトを適用するという点で@lends Cube.prototypeを言うときの注意を払うようにJSDocのを取得する方法を把握することはできません。 #1とほぼ同じエラーが表示されます: "警告:文書化されていないシンボルのメンバーとしてgetVoxelを文書化しようとしていますcubeFrame"。私はcubeFrameを文書化したくないので、そのプロトタイプをCubeのドキュメントに入れて欲しい。

私はこれらの2行を書き換えて、生成する文書を取得することができます(無効なコードです)。しかし、変更するたびにドキュメントを生成するコードを書き直したくありません。

答えて

3

@nameタグを使用すると、jsdocにオブジェクト名、クラス名、および@lendsタグをオブジェクトリテラルの直前に置き換えることができます。 Like:

(function(){ 
    /** 
    * Creates an instance of a Cube animation 
    * @class 
    * @name Cube 
    */ 
    function Cube(){ 
     //... 
    } 
    cubeFrame.prototype = /** @lends Cube.prototype */{ // Issue #2 
     //... 
     /** 
     */ 
     someMethod: function(){} 
    }; 
})() 
+0

恐ろしい、ありがとう:) –

+0

1つの質問 - ここでは '@ name'が必要ですか? –

+1

'Cube'は関数内で定義されているので(この場合、匿名のものは' Cube'を "内部で"しようとします)、 '@name Cude'は適切に文書化されます。 – Prusse

関連する問題