2016-11-27 8 views
1

Fooというコンストラクタ関数があり、ユーザにnewを指定せずに呼び出させます。例えば、Fooためコンストラクタ関数の新規作成なしの文書化

const myFoo = Foo('bar'); 

は、私がJSDoc3でこれを文書化するにはどうすればよい

function Foo(bar) { 
    if(!this) { return new Foo(bar); } 
    foo.bar = bar; 
    return this; 
} 

、と定義?デフォルトテンプレートで@class(または@constructor)を使用すると、出力は常にnew Foo(bar)を使用します。文書Foo@functionと書いても、そのインスタンスメソッドやプロパティは表示されません。関数自体は表示されません。

クラス定義とコンストラクタ関数を区別する方法はありますか?または、コンストラクタにnewを指定しないように出力を構成しますか? @lends@constructsは同様の必要性に対処するように見えますが、オブジェクトリテラルで定義されたコンストラクタとインスタンスメソッドについてはそうです。

答えて

0

@hideconstructorを使用できますか?例えば、のように: @hideconstructor */ 機能はFoo()@class

/** いくつかの説明 ...

それでもこれはJSDocの経由typescriptですと型チェックの検証に失敗します。その場合、ユーザーがnewを使用しないようにしたい場合は、クラスをとして@hideconstructorと文書化し、別々に関数Fooを@returns {ClassFoo}

関連する問題