TypeScriptジェネリック関数のTSDoc

型パラメータを持つジェネリック関数のTSDocドキュメントを生成します。ジェネリック制約を記述するための@typeParam(TSDoc)と@template(JSDoc)タグを解説します。

TypeScript

詳細な説明

ジェネリック型パラメータのドキュメント化

ジェネリック関数は、複数の型で動作する型パラメータを受け入れます。ドキュメントでは各型パラメータが何を表すか、どのような制約があるかを説明する必要があります。

シグネチャの例

function groupBy<T, K extends keyof T>(items: T[], key: K): Map<T[K], T[]>

生成されるTSDoc

/**
 * 指定されたキーの値で配列アイテムをグループ化します。
 *
 * @typeParam T - 配列内のアイテムの型。
 * @typeParam K - グループ化するTのキー。
 * @param items - グループ化するアイテムの配列。
 * @param key - アイテムをグループ化するプロパティ名。
 * @returns 指定プロパティのユニークな値をキーとし、
 *   その値を持つアイテムの配列を値とするMap。
 */

@typeParam vs @template

タグ 標準 使用場面
@typeParam TSDoc TSDoc規約を使用するTypeScriptプロジェクト
@template JSDoc JavaScriptプロジェクトまたはJSDocスタイルのTypeScript

制約のドキュメント化

型パラメータに制約(extends)がある場合は、説明でそれに言及します。

複数の型パラメータ

各型パラメータを独自の行に記載します。シグネチャに表示される順序で並べます。型パラメータ間に参照関係がある場合はその関係を説明します。

ユースケース

Lodashスタイルのヘルパー、Reduxセレクターファクトリ、型安全な結果を持つデータベースクエリビルダー、ジェネリクスを通じて任意の型で動作する再利用可能な関数のドキュメント化。

試してみる — JSDoc / TSDoc Generator

フルツールを開く