> 웹 프론트엔드 > JS 튜토리얼 > JSDoc: JavaScript 코드 문서화를 위한 확실한 가이드

JSDoc: JavaScript 코드 문서화를 위한 확실한 가이드

Linda Hamilton
풀어 주다: 2024-12-16 07:34:12
원래의
768명이 탐색했습니다.

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 {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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿