JsDoc Toolkitを使う!

@name

最終更新:

aias-jsdoctoolkit

- view
管理者のみ編集可

トップページ > ドックコメントの書き方 > タグリファレンス >

@name

ほとんどのケースで、JsDoc Toolkitはドキュメント要素のネームパスを自ら決定することができます。この機能はユーザが必要最小限度のドックコメントを書くだけですみ、素晴らしく便利です。しかしながらネームパスが明確でないときもあり、その場合には@nameタグを使用してネームパスを明示的に指定することになります。

というものの、周辺のコードを無視し、ドックコメントを他から分離して扱うようJsDoc Toolikitに指示する@nameタグの使用には、注意が必要です。このタグはコードに現れない(または何らかの理由ではっきり示されていない)要素についての記述を可能にする、非常に強力な技術です。

構文

@name theNamepath

  • theNamepath -- 必須:(周囲のコードとは無関係に)使用したいネームパス

/**
 * @name hiliteSearchTerm
 * @function
 */

eval("window.hiliteSearchTerm = function(term) {};")

@nameタグが無い場合、 hiliteSearchTerm 関数はJsDoc Toolkitには見えません。実際にコードが実行されるわけではないため、 eval がそうするようには文字列を解析できないからです。

上の例では@functionタグもまた必須な点、また多くの場合@memberOfも同じように必要となるであろう点に注意してください。この方法をとるときには基本的にその要素に関する全ての情報の明示的な記述が求められており、したがって記述は非常に煩雑となります。JsDoc Toolkitが行う自動判断のおかげで、幸運にもほとんどの場合それらは不要になっているのです。

注意

ここまで述べられているように、@nameタグを使うと基本的にドックコメントはコードから分離して処理されます。このタグが求められるのは既にJsDoc Toolkitがコードの中から必要な情報を見つけられなかったときだけなので、普通は想定通りの結果を得ることができるはずです。

しかしながら、JsDoc Toolkitはドックコメントが付いていない要素を出力するように実行することもできます(コマンドラインオプション -a を指定した場合)。そのときJsDoc Toolkit自身がネームパスの決定を行う位置に@nameタグが存在すると、競合が発生する可能性があります。

/** @name Foo */

Bar = function() {
}

上のケースで -a オプションを指定した場合、完成したドキュメントには2つの要素 - Foo オブジェクトと Bar 関数 - が存在します。それはあなたが正に意図したとおりかもしれません。しかし Bar 関数をあたかも "Foo" という名前であるかのように取り扱うよう@nameタグが強制するとあなたが(誤って)考えていたとしたら、混乱してしまうかもしれません。--そうはならないのです。

関連項目


目安箱バナー