mcpField
J
jsdoc-tsdoc

jsdoc-tsdoc

github.com/claude-dev-suite開発4647 回インストール2 日前に更新
リポジトリ

jsdoc-tsdoc について

JavaScript と TypeScript の開発者向けドキュメント作成スキルです。JSDoc と TSDoc の用途、タグ、記述方法に加え、トラブルシューティングも扱います。

主な機能

  1. 01JSDoc と TSDoc の比較
  2. 02TSDoc タグの分類の解説
  3. 03関数とインターフェースの記述例
  4. 04ドキュメントのアンチパターンと対策
  5. 05コメントやツールの問題調査

活用シーン

  1. 01TypeScript の公開 API の文書化
  2. 02チーム内でのタグ使用方法の統一
  3. 03IDE にドキュメントが表示されない問題の調査

MCP 対応

README では、JSDoc タグのリファレンス取得先として mcp__documentation__fetch_docs に言及しています。スキル自体の MCP 接続方法は説明されていません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill jsdoc-tsdoc

インストール後、Claude Code で/jsdoc-tsdocを入力して読み込まれたか確認します。

同梱ファイルadvanced.md

詳細

JSDoc と TSDoc のドキュメント

完全なリファレンス:JavaScript の JSDoc 型注釈、TypeDoc/API Extractor の設定、ESLint プラグインのセットアップ、README テンプレートについては、advanced.md を参照してください。

詳細な情報:包括的なタグのリファレンスについては、technology に jsdoc を指定して mcp__documentation__fetch_docs を使用してください。

このスキルを使用しない場合

  • プレーンな JavaScript プロジェクト - JavaScript 固有の JSDoc パターンには jsdoc スキルを使用してください
  • コードコメント(API 以外) - TSDoc は公開 API のドキュメント用であり、コード内のコメント用ではありません
  • コードから自動生成するドキュメント - TypeDoc または API Extractor ツールを直接使用してください

TSDoc と JSDoc の比較

機能JSDocTSDoc
目的JS のドキュメントと型TS のドキュメントのみ
型注釈@type、@param {Type}不要(TS の型を使用)
標準化デファクト公式標準

TypeScript プロジェクトでは TSDoc を使用してください - 型は TypeScript から取得され、コメントでは動作を説明します。

関数のドキュメント

/**
 * Calculates the total price including tax.
 *
 * @remarks
 * This method uses the default tax rate unless overridden.
 * For international orders, use {@link calculateInternationalPrice} instead.
 *
 * @param basePrice - The pre-tax price in cents
 * @param taxRate - Tax rate as decimal (default: 0.1 for 10%)
 * @returns The total price including tax in cents
 *
 * @throws {@link InvalidPriceError}
 * Thrown if basePrice is negative
 *
 * @example
 * ```typescript
 * const total = calculateTotalPrice(1000, 0.08);
 * console.log(total); // 1080
 * ```
 *
 * @beta
 */
function calculateTotalPrice(basePrice: number, taxRate = 0.1): number {
  if (basePrice < 0) {
    throw new InvalidPriceError('Price cannot be negative');
  }
  return Math.round(basePrice * (1 + taxRate));
}

インターフェースのドキュメント

/**
 * Configuration options for the HTTP client.
 *
 * @remarks
 * All timeouts are in milliseconds.
 *
 * @public
 */
interface HttpClientOptions {
  /**
   * Base URL for all requests.
   * @example 'https://api.example.com/v1'
   */
  baseUrl: string;

  /**
   * Request timeout in milliseconds.
   * @defaultValue 30000
   */
  timeout?: number;

  /**
   * Maximum number of retry attempts for failed requests.
   * @defaultValue 3
   */
  maxRetries?: number;
}

TSDoc タグ一覧

ブロックタグ
タグ用途
@param name - descriptionパラメーターの説明
@returns description戻り値の説明
@throws {Type} descriptionスローされる例外
@example使用例(コードブロック)
@remarks詳細な説明
@see関連する参照
@deprecated reason非推奨としてマーク
@defaultValue valueデフォルト値
@typeParam T - descriptionジェネリック型パラメーター
修飾タグ
タグ意味
@public公開 API の一部
@internal内部実装
@alpha初期プレビュー。変更される可能性があります
@beta成熟段階。API が変更される可能性があります
@readonly読み取り専用プロパティ
@override親をオーバーライド
インラインタグ
タグ用途
{@link Target}シンボルへのリンク
{@link Target | text}カスタムテキスト付きのリンク
{@inheritDoc Parent.method}ドキュメントを継承

アンチパターン

アンチパターン問題点正しいアプローチ
TypeScript で型をドキュメント化する型はシグネチャにすでにあるため冗長です型ではなく動作を説明する
関数シグネチャをコピーして貼り付ける価値がなく、内容の不整合を招きます目的、エッジケース、例を説明する
複雑な API に @example がないユーザーが使い方を理解できません常に使用例を含める
移行方法を示さずに @deprecated を使用する代わりに何を使えばよいかユーザーに伝わりません@deprecated Use {@link newFunction} instead
@throws の説明がないユーザーが何を捕捉すればよいかわかりませんスローされるすべての例外を説明する

トラブルシューティングのクイックガイド

問題診断解決策
VS Code でホバー時にドキュメントが表示されないJSDoc コメントの形式が不正です/** で始まり、タグの構文が正しいことを確認してください
eslint-plugin-tsdoc のエラーTSDoc の構文が無効ですTSDoc 仕様に従ってタグの書式を修正してください
TypeDoc がコメントを無視するコメントの位置が誤っていますJSDoc を宣言の直前に配置してください
{@link} が解決されないシンボル参照が正しくありません完全修飾名またはインポートパスを使用してください

公式リファレンス

リソースURL
TSDochttps://tsdoc.org/
JSDochttps://jsdoc.app/
TypeDochttps://typedoc.org/
API Extractorhttps://api-extractor.com/

コメント