ホームページ > ウェブフロントエンド > jsチュートリアル > JSDoc: JavaScript コードを文書化するための決定版ガイド

JSDoc: JavaScript コードを文書化するための決定版ガイド

Linda Hamilton
リリース: 2024-12-16 07:34:12
オリジナル
763 人が閲覧しました

JSDoc: La Guía Definitiva para Documentar tu Código JavaScript

JSDoc は、型指定および構造化されたコメントをコードに追加できる JavaScript のドキュメント ツールです。 Java の JavaDoc と同様に、JSDoc はコードの文書化に役立つだけでなく、Visual Studio Code などの最新のエディターでのオートコンプリートや型情報により開発エクスペリエンスを向上させます。

JSDoc を使用する理由

  • 保守性の向上: 数か月後のコードの理解が容易になります
  • スマート オートコンプリート: IDE はより正確な提案を提供できます
  • 自動ドキュメント: コメントから HTML ドキュメントを生成
  • 型検証: TypeScript
  • を必要とせずに型チェックを提供します。
  • 互換性: バニラ JavaScript と最新のフレームワークで動作します

基本的な構文

JSDoc コメントの構造

JSDoc コメントは /**そして次で終わります*/ で始まります:

/**
 * Calcula el área de un rectángulo.
 * @param {number} ancho - El ancho del rectángulo
 * @param {number} alto - El alto del rectángulo
 * @returns {number} El área del rectángulo
 */
function calcularArea(ancho, alto) {
    return ancho * alto;
}
ログイン後にコピー
ログイン後にコピー

主なタグ

@param

関数のパラメータを文書化します:

/**
 * @param {string} nombre - Nombre del usuario
 * @param {number} [edad] - Edad del usuario (opcional)
 * @param {Object} opciones - Opciones de configuración
 * @param {boolean} opciones.activo - Estado del usuario
 * @param {string} opciones.rol - Rol del usuario
 */
function crearUsuario(nombre, edad, opciones) {
    // Implementación
}
ログイン後にコピー
ログイン後にコピー

@returns

戻り値を指定します:

/**
 * @returns {Promise<User>} Promesa que resuelve con los datos del usuario
 */
async function obtenerUsuario() {
    // Implementación
}
ログイン後にコピー
ログイン後にコピー

@typedef

カスタム タイプを定義します:

/**
 * @typedef {Object} Usuario
 * @property {string} id - ID único del usuario
 * @property {string} nombre - Nombre completo
 * @property {number} edad - Edad del usuario
 * @property {string[]} roles - Lista de roles asignados
 */

/**
 * @param {Usuario} usuario
 * @returns {boolean}
 */
function validarUsuario(usuario) {
    // Implementación
}
ログイン後にコピー
ログイン後にコピー

@折り返し電話

コールバック関数の型を定義します:

/**
 * @callback ValidatorCallback
 * @param {string} valor - Valor a validar
 * @returns {boolean} Resultado de la validación
 */

/**
 * @param {string} dato
 * @param {ValidatorCallback} validador
 */
function procesarDato(dato, validador) {
    if (validador(dato)) {
        // Procesar dato
    }
}
ログイン後にコピー
ログイン後にコピー

複合型

配列とオブジェクト

/**
 * @param {Array<string>} nombres - Lista de nombres
 * @param {Object.<string, number>} edades - Mapa de nombres a edades
 */
function procesarDatos(nombres, edades) {
    // Implementación
}
ログイン後にコピー

共用体と Null 許容型

/**
 * @param {string|number} id - ID que puede ser string o número
 * @param {?string} descripcion - Descripción opcional (puede ser null)
 */
function buscarElemento(id, descripcion) {
    // Implementación
}
ログイン後にコピー

クラスのドキュメント

/**
 * Representa un vehículo genérico.
 * @class
 */
class Vehiculo {
    /**
     * Crea una instancia de Vehiculo.
     * @param {string} marca - Marca del vehículo
     * @param {string} modelo - Modelo del vehículo
     * @param {number} año - Año de fabricación
     */
    constructor(marca, modelo, año) {
        this.marca = marca;
        this.modelo = modelo;
        this.año = año;
    }

    /**
     * Calcula la edad del vehículo.
     * @returns {number} Edad en años
     */
    obtenerEdad() {
        return new Date().getFullYear() - this.año;
    }
}
ログイン後にコピー

VS コードとの統合

プロジェクト設定

プロジェクトのルートに jsconfig.json ファイルを作成します。

{
    "compilerOptions": {
        "checkJs": true,
        "strictNullChecks": true,
        "strictFunctionTypes": true
    },
    "exclude": ["node_modules", "dist"]
}
ログイン後にコピー

ドキュメントの生成

JSDocのインストール

npm install -g jsdoc
ログイン後にコピー

JSDoc の設定

jsdoc.json ファイルを作成します:

/**
 * Calcula el área de un rectángulo.
 * @param {number} ancho - El ancho del rectángulo
 * @param {number} alto - El alto del rectángulo
 * @returns {number} El área del rectángulo
 */
function calcularArea(ancho, alto) {
    return ancho * alto;
}
ログイン後にコピー
ログイン後にコピー

HTMLドキュメントの生成

/**
 * @param {string} nombre - Nombre del usuario
 * @param {number} [edad] - Edad del usuario (opcional)
 * @param {Object} opciones - Opciones de configuración
 * @param {boolean} opciones.activo - Estado del usuario
 * @param {string} opciones.rol - Rol del usuario
 */
function crearUsuario(nombre, edad, opciones) {
    // Implementación
}
ログイン後にコピー
ログイン後にコピー

ベストプラクティス

  1. 一貫性を保つ: プロジェクト全体で統一されたドキュメントのスタイルを維持します。
/**
 * @returns {Promise<User>} Promesa que resuelve con los datos del usuario
 */
async function obtenerUsuario() {
    // Implementación
}
ログイン後にコピー
ログイン後にコピー
  1. 副作用を文書化:
/**
 * @typedef {Object} Usuario
 * @property {string} id - ID único del usuario
 * @property {string} nombre - Nombre completo
 * @property {number} edad - Edad del usuario
 * @property {string[]} roles - Lista de roles asignados
 */

/**
 * @param {Usuario} usuario
 * @returns {boolean}
 */
function validarUsuario(usuario) {
    // Implementación
}
ログイン後にコピー
ログイン後にコピー
  1. 複雑なケースには例を使用します:
/**
 * @callback ValidatorCallback
 * @param {string} valor - Valor a validar
 * @returns {boolean} Resultado de la validación
 */

/**
 * @param {string} dato
 * @param {ValidatorCallback} validador
 */
function procesarDato(dato, validador) {
    if (validador(dato)) {
        // Procesar dato
    }
}
ログイン後にコピー
ログイン後にコピー

ツールとプラグイン

  1. ESLint: ドキュメントを検証するためのルールを構成します
  2. DocumentThis: JSDoc を自動的に生成する VS Code 拡張機能
  3. better-docs: 生成されたドキュメントのテンプレートを改善しました

JSDoc は、JavaScript コードの品質と保守性を大幅に向上させる強力なツールです。適切な IDE サポートとドキュメント生成ツールを使用すると、より堅牢で保守しやすいコードベースを作成できます。

推奨される次のステップ:

  1. 現在のプロジェクトで JSDoc を構成します
  2. パブリック関数を文書化することから始めます
  3. オートコンプリートを利用できるようにエディタを設定します
  4. CI/CD パイプラインに自動ドキュメント生成を実装します

追加のリソース

  • 公式 JSDoc ドキュメント
  • JSDoc チートシート
  • TypeScript と JSDoc

以上がJSDoc: JavaScript コードを文書化するための決定版ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート