Documentation avec JSDoc

JSDoc permet de documenter du code JavaScript.

Grâce à JSDoc, il devient plus facile de comprendre :

JSDoc est très utilisé dans les projets professionnels.

1. Pourquoi documenter le code

La documentation aide les développeurs à comprendre le programme.

Elle améliore :

Même plusieurs semaines plus tard, la documentation aide à retrouver rapidement le fonctionnement d’une fonction.

2. Syntaxe JSDoc

Un commentaire JSDoc commence avec :

/** */

Exemple :

/**
 * Additionne deux nombres.
 */

3. Documentation d’une fonction

JSDoc est souvent utilisé avec les fonctions.

/**
 * Retourne le carré d’un nombre.
 */
function square(number) {

    return number * number;

}

Ici, la documentation explique le rôle de la fonction.

4. @param

L’annotation @param décrit un paramètre de fonction.

/**
 * Additionne deux nombres.
 *
 * @param {number} a
 * @param {number} b
 */
function add(a, b) {

    return a + b;

}
Partie Rôle
@param Déclare un paramètre
{number} Type attendu
a Nom du paramètre

5. @returns

L’annotation @returns décrit la valeur retournée.

/**
 * Additionne deux nombres.
 *
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function add(a, b) {

    return a + b;

}

6. Les types primitifs

JSDoc peut documenter plusieurs types JavaScript.

Type Description
number Nombre
string Texte
boolean Vrai ou faux
object Objet JavaScript
Array Tableau

7. Documenter un objet

JSDoc peut documenter des objets complexes.

/**
 * Retourne le nom d’un utilisateur.
 *
 * @param {{name: string}} user
 * @returns {string}
 */
function getUsername(user) {

    return user.name;

}

Ici, l’objet doit contenir une propriété :

name

8. Documenter un tableau

JSDoc peut aussi documenter des tableaux.

/**
 * Retourne le total des nombres.
 *
 * @param {number[]} numbers
 * @returns {number}
 */
function total(numbers) {

    return numbers.reduce((sum, number) => {

        return sum + number;

    }, 0);

}

9. Fonctions fléchées

JSDoc fonctionne aussi avec les fonctions fléchées.

/**
 * Multiplie deux nombres.
 *
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
const multiply = (a, b) => {

    return a * b;

};

10. IntelliSense

Les éditeurs modernes comme VS Code utilisent JSDoc pour améliorer l’IntelliSense.

Cela permet :

11. Exemple complet

/**
 * Retourne le prix total avec taxes.
 *
 * @param {number} price
 * @param {number} tax
 * @returns {number}
 */
function calculateTotal(price, tax) {

    return price + tax;

}

Cette documentation explique :

12. Bonnes pratiques

Résumé rapide

Concept Utilité
/** */ Créer un commentaire JSDoc
@param Documenter un paramètre
@returns Documenter une valeur retournée
{number} Type number
{string} Type string
{Array} Type tableau
IntelliSense Aide l’autocomplétion