Closed6
JSDoc
JSDoc とは
JSDoc とは、JavaScript コードにコメント形式で型情報やドキュメント情報を埋め込み、コードの可読性や保守性を高めるための標準的な仕様
JavaScript におけるドキュメントの必要性
JavaScript はもともと動的型付けの言語であり、動作時まで型が決まらないことが特徴です。そのため、小規模なスクリプトであれば「とりあえず動けばいい」といった開発も可能ですが、以下のような課題が生じがち。
- 引数や戻り値の意図がコードからすぐには読み取れない
- 複数人で開発していると、仕様の齟齬が生まれやすい
- リファクタリング時に影響範囲を把握しづらい
こうした課題を解決するために生まれたのが、コード内部に注釈として「型」や「説明」を埋め込む仕組みです。TypeScript を使えばコンパイル時に型チェックが入りますが、プロジェクト全体を .ts
化するコストや学習コストを考えると、純粋な JavaScript のままでもある程度の型安全性を担保したいケースがあります。
JSDoc を導入することで得られるメリット
-
コードの可読性向上
-
@param
や@returns
などのタグを活用すれば、関数の引数や戻り値にどのような型・意味があるのかをコメントとして明示できます。後からコードを読む際に、実装だけでなく「どう使うべきか」がすぐに分かるようになります。
-
-
エディタ補完・静的解析の強化
- VSCode や WebStorm、さらには TypeScript の
-checkJs
モードなどと組み合わせることで、JSDoc コメントをもとに型情報を補完してくれます。その結果、IDE 上で「型エラー」として警告を受け取ったり、オートコンプリートで候補が出たりするようになります。
- VSCode や WebStorm、さらには TypeScript の
-
自動ドキュメント生成
-
jsdoc
コマンドラインツールを使って、ソースコード中の JSDoc コメントを解析し、HTML や Markdown 形式の API ドキュメントを生成できます。ライブラリ公開や社内向けのリファレンス整備に便利です。
-
-
チーム開発での仕様共有
- コードにコメントを残すだけでなく、全員が同じ形式(@param、@returns)で書くことで、ドキュメントの品質が均一化されます。手動で README を更新する手間が減り、バージョン管理されたコードがそのままドキュメントになります。
基本構文
/**
* ここに説明を書く
* @param {型} 引数名 説明
* @returns {型} 戻り値の説明
*/
function example(arg) { … }
主要タグ:
- @param : 引数の型・説明
- @returns : 戻り値の型・説明
- @typedef/@property : オブジェクト型の定義
- @example : 使用例
- @deprecated : 非推奨マーク
- @see : 参考リンク
TypeScript との併用
ファイル先頭に // @ts-check を追加し、JSDoc を書くことで .js ファイルでも型チェック可能。
重い .ts 化をせずに、少しずつ既存コードへ型情報を導入できる。
JSDoc を書く際の注意点
-
コメントの内容は常に最新に保つ
- JSDoc コメントが実装と乖離してしまうと、逆に誤解を生む原因になります。実装を修正したら、合わせて JSDoc コメントも更新しましょう。
-
型名や引数名は一貫性を保つ
- プロジェクト全体で同じ命名規則を使うことで、読み手が混乱しにくくなります。たとえば、UI コンポーネントなら
props
、ユーティリティ関数ならoptions
といった具合に、用語を統一しましょう。
- プロジェクト全体で同じ命名規則を使うことで、読み手が混乱しにくくなります。たとえば、UI コンポーネントなら
-
簡潔に、しかし情報は漏れなく
- あまり長すぎるコメントは読み飛ばされがちです。引数や戻り値の要点を押さえつつ、詳細な説明が必要な場合は
@example
や@see
で補足しましょう。
- あまり長すぎるコメントは読み飛ばされがちです。引数や戻り値の要点を押さえつつ、詳細な説明が必要な場合は
-
自動生成ツールとの連携を意識する
- プロジェクトで
jsdoc
やtypedoc
(TypeScript プロジェクトの場合)を導入しているなら、タグの書式や設定ファイル(jsdoc.json)の include/exclude パターンを事前に合わせておくと、生成結果がブレずに済みます。
- プロジェクトで
このスクラップは3ヶ月前にクローズされました