Closed6

JSDoc

鞠

JSDoc とは

JSDoc とは、JavaScript コードにコメント形式で型情報やドキュメント情報を埋め込み、コードの可読性や保守性を高めるための標準的な仕様

鞠

JavaScript におけるドキュメントの必要性

JavaScript はもともと動的型付けの言語であり、動作時まで型が決まらないことが特徴です。そのため、小規模なスクリプトであれば「とりあえず動けばいい」といった開発も可能ですが、以下のような課題が生じがち。

  • 引数や戻り値の意図がコードからすぐには読み取れない
  • 複数人で開発していると、仕様の齟齬が生まれやすい
  • リファクタリング時に影響範囲を把握しづらい

こうした課題を解決するために生まれたのが、コード内部に注釈として「型」や「説明」を埋め込む仕組みです。TypeScript を使えばコンパイル時に型チェックが入りますが、プロジェクト全体を .ts 化するコストや学習コストを考えると、純粋な JavaScript のままでもある程度の型安全性を担保したいケースがあります。

鞠

JSDoc を導入することで得られるメリット

  1. コードの可読性向上
    • @param@returns などのタグを活用すれば、関数の引数や戻り値にどのような型・意味があるのかをコメントとして明示できます。後からコードを読む際に、実装だけでなく「どう使うべきか」がすぐに分かるようになります。
  2. エディタ補完・静的解析の強化
    • VSCode や WebStorm、さらには TypeScript の -checkJs モードなどと組み合わせることで、JSDoc コメントをもとに型情報を補完してくれます。その結果、IDE 上で「型エラー」として警告を受け取ったり、オートコンプリートで候補が出たりするようになります。
  3. 自動ドキュメント生成
    • jsdoc コマンドラインツールを使って、ソースコード中の JSDoc コメントを解析し、HTML や Markdown 形式の API ドキュメントを生成できます。ライブラリ公開や社内向けのリファレンス整備に便利です。
  4. チーム開発での仕様共有
    • コードにコメントを残すだけでなく、全員が同じ形式(@param、@returns)で書くことで、ドキュメントの品質が均一化されます。手動で README を更新する手間が減り、バージョン管理されたコードがそのままドキュメントになります。
鞠

基本構文

/**
 * ここに説明を書く
 * @param {型} 引数名 説明
 * @returns {型} 戻り値の説明
 */
function example(arg) { … }

主要タグ:

  • @param : 引数の型・説明
  • @returns : 戻り値の型・説明
  • @typedef/@property : オブジェクト型の定義
  • @example : 使用例
  • @deprecated : 非推奨マーク
  • @see : 参考リンク
鞠

TypeScript との併用

ファイル先頭に // @ts-check を追加し、JSDoc を書くことで .js ファイルでも型チェック可能。
重い .ts 化をせずに、少しずつ既存コードへ型情報を導入できる。

鞠

JSDoc を書く際の注意点

  1. コメントの内容は常に最新に保つ
    • JSDoc コメントが実装と乖離してしまうと、逆に誤解を生む原因になります。実装を修正したら、合わせて JSDoc コメントも更新しましょう。
  2. 型名や引数名は一貫性を保つ
    • プロジェクト全体で同じ命名規則を使うことで、読み手が混乱しにくくなります。たとえば、UI コンポーネントなら props、ユーティリティ関数なら options といった具合に、用語を統一しましょう。
  3. 簡潔に、しかし情報は漏れなく
    • あまり長すぎるコメントは読み飛ばされがちです。引数や戻り値の要点を押さえつつ、詳細な説明が必要な場合は @example@see で補足しましょう。
  4. 自動生成ツールとの連携を意識する
    • プロジェクトで jsdoctypedoc(TypeScript プロジェクトの場合)を導入しているなら、タグの書式や設定ファイル(jsdoc.json)の include/exclude パターンを事前に合わせておくと、生成結果がブレずに済みます。
このスクラップは3ヶ月前にクローズされました