Я разрабатываю приложение и хочу, чтобы мой код был максимально читабельным, и я хочу использовать JSDoc. Я хочу описать объекты, но я не видел пример в Интернете
Я попытался @memberof, но объект содержит вложенный объект, тогда становится трудно читать
/**
* @const {Object} SUPPORT Objet pour gérer les supports
*/
const SUPPORT = {
/**
* @property {Object} container Propriété pour gérer le conteneur
*/
container: {
/**
* Récupérer le conteneur
* @returns {Object | null} Element récupéré ou null
*/
get: () => {
return document.getElementById("video_container")
},
/**
* Nettoyer le conteneur (enlever les éléments à l'interieur)
*/
clear: () => SUPPORT.container.get().innerHTML = "",
/**
* Ajouter un élement dans le conteneur
* @param {HTMLElement} element Element qui va être ajouter au conteneur
*/
add: (element) => SUPPORT.container.get().appendChild(element),
/**
* Enlever un élément du conteneur
* @param {HTMLElement} element Element qui va être retirer au conteneur
*/
remove: (element) => SUPPORT.container.get().removeChild(element)
},
video: {
/**
* Générer du code HTML
* @param {string} chemin Chemin de la vidéo
*/
genererHTML: (chemin) => {
const video = document.createElement("video");
const source = document.createElement("source");
video.width = "640";
video.height = "480";
source.src = chemin;
video.appendChild(source);
SUPPORT.container.add(video);
}
},
image: {
/**
* Générer du code HTML
* @param {string} chemin Chemin de l'image
*/
genererHTML: chemin => {
const image = document.createElement("img");
image.src = chemin;
SUPPORT.container.add(image);
}
}
};
Я ожидаю, чтоиметь правильную документацию при переходе к выводу JSDoc
edit: я нашел решение: я использую пространство имен в пространстве имен, но оно не чистое
/**
* @const {Object} SUPPORT Object qui contient les informations pour gérer les supports
*
* @namespace SUPPORT
*/
const SUPPORT = {
/**
* @namespace SUPPORT.container
*/
container: {
/**
* Récupérer le conteneur
* @returns {Object | null} Element récupéré ou null
*/
get: () => {
return document.getElementById("video_container")
},
/**
* Nettoyer le conteneur (enlever les éléments à l'interieur)
*/
clear: () => SUPPORT.container.get().innerHTML = "",
/**
* Ajouter un élement dans le conteneur
* @param {HTMLElement} element Element qui va être ajouter au conteneur
*/
add: (element) => SUPPORT.container.get().appendChild(element),
/**
* Enlever un élément du conteneur
* @param {HTMLElement} element Element qui va être retirer au conteneur
*/
remove: (element) => SUPPORT.container.get().removeChild(element)
},
/**
* @namespace SUPPORT.video
*/
video: {
/**
* Générer du code HTML
* @param {string} chemin Chemin de la vidéo
*/
genererHTML: (chemin) => {
const video = document.createElement("video");
const source = document.createElement("source");
video.width = "640";
video.height = "480";
source.src = chemin;
video.appendChild(source);
SUPPORT.container.add(video);
}
},
/**
* @namespace SUPPORT.image
*/
image: {
/**
* Générer du code HTML
* @param {string} chemin Chemin de l'image
*/
genererHTML: chemin => {
const image = document.createElement("img");
image.src = chemin;
SUPPORT.container.add(image);
}
}
};