それとも、それらはソースに含まれていませんか?jQueryを解析するたびにjs-doc-toolkitがおかしくなるのを防ぐ何かを本当に手に入れたいです。また、jQueryの構造を適切に文書化できない定型的なjs-docブロックを少なくとも配置しないと、依存関係としてjQueryを使用してコードを適切に文書化できないことも意味します。私が知らない一般的な解決策はありますか?ところで、グーグルを試してみました。
3 に答える
ここでは、 JSDocを使用しない理由についてjQueryチームについて話すことができないため、暗闇の中で写真を撮ります。JSDocは、少なくとも前回チェックしたときは、メソッドのオーバーロード(またはパラメーターシフト...ここで付けたい名前)をサポートするクリーンな方法がなく、jQueryはこれをあらゆる場所で使用しています。簡単な一般的な例を見てみましょう.animate()
:
.animate({ height: 5 })
.animate({ height: 5 }, 100)
.animate({ height: 5 }, 100, "linear")
.animate({ height: 5 }, 100, "linear", func)
.animate({ height: 5 }, 100, func)
.animate({ height: 5 }, func)
.animate({ height: 5 }, { duration: 100, queue: false })
.animate({ height: 5 }, { duration: 100, easing: "linear" })
.animate({ height: 5 }, { duration: 100, easing: "linear", complete: func })
パラメータタイプがチェックされ、可能な限り過負荷シナリオをサポートするために必要に応じてシフトされるため、これらはすべて有効です...これはJSDocの混乱を招くだけであり、これらのオプションのパラメータをドキュメントに追加するクリーンな方法はありません。これが変更された場合は訂正してください。ただし、最後に調べたとき(そしておそらくチームが最後に調べたとき)は、それでも当てはまりました。
もう1つの潜在的な考慮事項は、jQueryの実行時に一部のメソッドがどのように生成されるかです。たとえば(多くの1つ)、ほとんどすべてのイベントハンドラーショートカットは、他のメソッドと同様の動作でループ生成されます...これらをどのように文書化しますか?JSDocの生成は、ここでは実際にはうまく機能しません。
JSDocコメントを追加しない理由はわかりませんが、Google Closureの担当者は、高度な最適化を備えたクロージャーコンパイラに必要な「externs」の更新バージョンを保持しているようです。
http://code.google.com/p/closure-compiler/source/browse/trunk/contrib/externs/jquery-1.6.js?r=1152
他の人が元の質問に関して持っていないものを追加することはできませんが、jQueryを自動的に文書化できるものへのリンクを提供することはできます。
これは、ランタイム環境で実行し、結果のツリーを解析することによって行われます。JSDocと同様に、変更されたRhinoを使用します。まだ始まったばかりですが、これが誰かに役立つことを願っています。:)