Skip to content

Théorie Documentation application Vue

La syntaxe de documentation dans Vue est la suivante : /** */.

Par exemple :

ts
/**
 * Retourne la somme de deux nombres.
 * @param a - Le premier nombre
 * @param b - Le deuxième nombre
 * @returns La somme de a et b
 */
function addition(a: number, b: number): number {
  return a + b;
}

Documenter les composants

Fonctions

La syntaxe /** */ est celle de JSDocs, vu précédemment cette session. Nous allons pouvoir la réutiliser!

ts
/**
 * Gère la soumission du formulaire
 * @returns {Promise<void>}
 */
async function soumettre(){
  const requete: CreerCommandeRequete = {
    client: nomClient.value,
    recette_id: recetteId.value!
  }

  const commande = await commandeService.creerCommande(requete);
  await router.push(`/commandes/${commande.id}`);
}

Information ❗

Vous n'avez pas à commencer votre documentation par Fonction qui.... On le sait qu'il s'agit d'une fonction 😃 Allez immédiatement dans son rôle et l'action qu'elle effectue ou gère.

Information ❗

Vous n'avez pas à documenter les fonctions en provenance de Vue comme onMounted par exemple.

Variables

Pour documenter les variables, nous allons simplement utiliser la syntaxe /** */ au-dessus de la variable. Par exemple :

ts
/**
 * Le nom du client qui passe la commande
 */
const nomClient = ref('');

Documenter les services

On va utiliser les JSDocs pour documenter les fonctions de nos services. Cela doit inclure les paramètres et la sortie de la fonction.

ts
/**
 * Modifie une commande
 * @param {string} id L'identifiant de la commande
 * @param {ModifierCommandeRequete} requete Les données modifiées à soumettre
 * @returns {Promise<Commande>} La commande modifiée
 */
async modifierCommande(id: string, requete: ModifierCommandeRequete): Promise<Commande> {
  const url = `/etudiants/1212121/commandes/${id}`;
  const reponse = await api.patch<Commande>(url, requete);

  return reponse.data;
}

Documenter les modèles (typings)

Pour documenter les modèles, documentez simplement les propriétés via /** */, en plus de l'en-tête de l'interface.

ts
/**
* Une commande client
*/
export interface Commande {
  /**
   * Identifiant de la commande
   */
  id: number;
  /**
   * Nom du client
   */
  client: string;
  /**
   * Recette associée à la commande
   */
  recette: Recette;
  /**
   * Date de création
   */
  created_at: string;
  /**
   * Date de modification
   */
  updated_at: string;
}

Il est possible de faire une version abrégée des commentaires en une seule ligne :

ts
/**
* Une commande client
*/
export interface Commande {
  /** Identifiant de la commande */
  id: number;
  
  /** Nom du client */
  client: string;
  
  /** Recette associée à la commande */
  recette: Recette;
  
  /** Date de création */
  created_at: string;
  
  /** Date de modification */
  updated_at: string;
}

420-2W1-DM - Développement d'applications web 2