2013-06-16 10 views
6

パラメータとして渡されたコンストラクタ(関数)をドキュメント化するにはどうすればよいですか?JSDoc 3ドキュメントコンストラクタ/クラスパラメータ

例:

/** @class */ 
function A() {} 

/** 
* @param {Function} aConstructor 
*/ 
function createA(aClass) { 
    return new aClass(); 
} 

あなたが見ることができるように、私はそれが関数であることを指定することができます。しかし、その関数がどのオブジェクトを作成するかを指定することはできません。これを文書化する方法はありますか?

ありがとうございました。

+0

なぜ '@ returns'のように' @returns {A} 'や複数の型が可能な場合は' @returns {A | B}} 'を使うことができますか? –

+0

'@constructs '(これは、http://usejsdoc.org/tags-constructs.htmlの2番目の例を参照してください) –

+0

でこれを行うことができるようです。まさにそのデータ型を返すでしょう。ただし、パラメータ自体の予期されるデータ型であることを厳密に示すものではありません。他の例と同じです。 – samanime

答えて

0

コメントで説明したように、私はその機能をサポートするように見えないので、私はリクエストを提出したいと思います。 instanceofのアプローチを使用して、 "Function"は、当面の間、コンストラクタのオブジェクトインスタンスを表すのに最も近いものです。前述のとおり、@constructsまたは@returnsは、出力を示すのに役立つかもしれませんが、パラメータ入力は表示できません。

9

Googleはクロージャを使用して、タイプの説明として{function(new:type)}を提案しています。 私は1つが、このような何か(私はAMDとそれを使用しています)を使用することができますことを、想定している:あなたがここでより多くの情報を見つけることができます

/** @param {function(new:ClassOrInterfaceName)} aClass */ 

http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml#JavaScript_Types

私は希望を、私の答えは、誰かを助けることができます)

+1

最新の詳細情報はこちらからご覧ください:https://developers.google.com/closure/compiler/docs/js-for-compiler#types – conceptdeluxe

+1

..例えばコンストラクタのパラメータが '{function(new:FooBar、string、number)} 'などを使用できるようにする – conceptdeluxe

関連する問題