JSDoc
JSDoc 是 JavaScript 文档的一部分,允许在代码中添加注释和结构。与 Java 的 JavaDoc 类似,JSDoc 不是一个单独的代码文档,它可以帮助您在现代 Visual Studio Code 中获得自动完成的开发经验和提示信息。
为什么使用 JSDoc?
基本语法
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 {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
具体的 el valor de retorno:
/** * @returns {Promise} 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} nombres - Lista de nombres * @param {Object. } edades - Mapa de nombres a edades */ function procesarDatos(nombres, edades) { // Implementación }
可空联盟和类型
/** * @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 Code 集成
项目配置
在项目中创建存档“jsconfig.json”:
{ "compilerOptions": { "checkJs": true, "strictNullChecks": true, "strictFunctionTypes": true }, "exclude": ["node_modules", "dist"] }
文献生成
安装 JSDoc
npm install -g jsdoc
JSDoc 配置
创建“jsdoc.json”文件:
{ "source": { "include": ["src"], "includePattern": ".js$", "excludePattern": "(node_modules/|docs)" }, "plugins": ["plugins/markdown"], "templates": { "cleverLinks": true, "monospaceLinks": true }, "opts": { "recurse": true, "destination": "./docs" } }
HTML 文档生成
jsdoc -c jsdoc.json
实践能力卓越
/** * ✅ Buena documentación * @param {string} nombre * @returns {boolean} */ function validar(nombre) {} /** * ❌ Documentación inconsistente * @param nombre: string * @return boolean */ function validar(nombre) {}
/** * Guarda el usuario en la base de datos. * @param {Usuario} usuario * @throws {Error} Si la conexión falla * @fires {evento:usuarios:creado} Cuando el usuario es creado */ function guardarUsuario(usuario) {}
/** * Formatea una fecha según el locale especificado. * @param {Date} fecha * @param {string} [locale=es-ES] * @returns {string} * @example * // Retorna "1 de enero de 2024" * formatearFecha(new Date(2024, 0, 1), 'es-ES') */ function formatearFecha(fecha, locale = 'es-ES') {}
工具和插件
JSDoc 是 JavaScript 中最重要的参数和管理工具。通过 IDE 的辅助功能和文档生成工具,可以创建强大的代码库并轻松管理。