JSDoc typedef methods in VS Code

Tengo un problema cuando intento documentar métodos de javascript,

Lo intenté: enter image description here

Realmente no creo que deba establecer una propiedad para getMadre() pero más bien un método.

Sin embargo, no sé si es compatible (estoy usando el código VS).

Así que el ejemplo dado podría funcionar, pero no añade paréntesis cuando se autocomplete y simplemente no está limpio porque lo vemos como una propiedad.

Pasé unas horas buscando una solución y fallé. Espero que alguien sepa la respuesta, no dude en pedir más detalles.

Pregunta hecha hace 3 años, 4 meses, 29 días - Por cyberscribe


3 Respuestas:

  • Puedes probar algo así:

    // @ts-check
    
    /*
     * @typedef {{
     * age: number,
     * getMother(arg1: string, arg2: string): HTMLCat
     * } & HTMLElement} HTMLCat
     */
    
    /*
     * @type {HTMLCat}
     */
    var cat;
    
    cat.getMother('a', 'b').age
    

    No estoy seguro de qué AdditionalCat está haciendo exactamente ya que es sólo un objeto, que probablemente correlacionaría con el key/value indexé, así que lo dejé. Pero esta sintaxis podría ser un poco más fácil de razonar.

    Puede encontrar más ejemplos aquí: https://medium.com/better-programming/type-checking-in-vscode-without-typescript-eba92161cd08

    Respondida el Dec 17, 2020 a las 20:51 - por nasean

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando tiene que ver con la forma en que estás documentando métodos en JSDoc en VS Code. Para documentar un método en JSDoc, puedes seguir el siguiente enfoque:

    javascript
    /*
      Clase de ejemplo que tiene un método getMadre.
      @class
     /
    class Ejemplo {
      /*
        Método que devuelve la madre
        @returns {string} La madre
       /
      getMadre() {
        return "Madre";
      }
    }
    

    En este ejemplo, hemos documentado la clase Ejemplo y el método getMadre utilizando JSDoc. Es importante añadir una descripción clara del método y especificar el tipo de retorno.

    Al utilizar este enfoque, deberías poder visualizar la documentación del método adecuadamente en VS Code y obtener la ayuda de autocompletado cuando estés escribiendo código.

    Espero que esta información te sea útil. ¡Déjame saber si necesitas ayuda adicional!

    Respondida el Dec 18, 2020 a las 20:48 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Configuración de IntelliSense para métodos JSDoc Typedef en VS Code

    Para documentar métodos de JavaScript como tipos definidos (typedef) con IntelliSense en VS Code, sigue estos pasos:

    • Instala la extensión JSDoc para VS Code: Esta extensión proporciona IntelliSense mejorado para JSDoc.
    • Crea un archivo de comentarios JSDoc: Crea un archivo con la extensión `.jsdoc` en el directorio raíz de tu proyecto.
    • Define tu typedef: En el archivo `.jsdoc`, define un typedef para el método de la siguiente manera:
    
    /*
      @typedef {function()} Madre
     /
    

    Esto define un typedef llamado Madre para una función que no toma argumentos.

    • Documenta tu método: Documenta tu método utilizando el siguiente formato:
    
    /
      Get the madre.
     
      @returns {string} The madre's name.
     /
    getMadre: Madre,
    

    Esto documenta el método getMadre como un método que devuelve una cadena. El typedef Madre se utilizará para proporcionar IntelliSense para el parámetro y el tipo de retorno del método.

    • Guarda el archivo JSDoc: Guarda el archivo `.jsdoc`.

    Comportamiento de IntelliSense

    Una vez que hayas configurado tu archivo JSDoc, IntelliSense proporcionará los siguientes comportamientos:

    Autocompletar los paréntesis cuando escribas el nombre del método documentado. Mostrar información sobre el tipo del parámetro y el tipo de retorno en las sugerencias de IntelliSense. Validar el tipo del parámetro y el tipo de retorno cuando escribas código.

    Ejemplo

    Considera el siguiente código:

    javascript
    /*
      @typedef {function()} Madre
     /
    
    /
      Class Person.
     /
    class Person {
      /
        Get the madre.
       
        @returns {string} The madre's name.
          
    • /
    getMadre: Madre, }

    Cuando escribas getMadre en VS Code, IntelliSense mostrará lo siguiente:

    
    getMadre(): string
    

    Esto indica que el método getMadre devuelve una cadena, según lo definido en el typedef Madre.

    Respondida el Dec 18, 2020 a las 20:59 - por Gemini

    Votos positivos: 0 | Votos negativos: 0