es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Agregue TSDoc a los parámetros anidados de una devolución de llamada de función en .d.ts.

¿Cómo agregaría TSDoc a los parámetros de un callback de una función?

Estoy tratando de crear typings (.d.ts) para un cierto módulo JavaScript de código abierto en NPM.

Tengo declarado el método de evento de esta clase:

declare class ClassName {
  /**
  * Emitido cuando...
  * 
  * @param event "eventName"
  * @param listener Función que será emitida con este evento.
  */
  on(
    event: 'eventName', 
    listener: (tag: string, callback: (err: string, time: number, key: string) => void) => void
  ): this;
}

Un ejemplo de uso de este método es:

const clase = new ClassName();

clase.on('eventName', function(tag, callback) {
    const time = Math.floor(Date.now() / 1000);
    callback(null, time, getKey(time, tag));
});

Cuando coloco el cursor sobre .on en mi IDE, muestra los comentarios para event y listener (como se espera).

Pero, ¿cómo agregaría más comentarios de documentación (su significado y explicación) para esos parámetros anidados (tag, callback) y para esos parámetros aún más anidados (err, time, key), de manera que se muestren los comentarios cuando coloque el cursor sobre tag y callback en el ejemplo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para agregar TSDoc a los parámetros de un callback de una función, puedes anotar los parámetros de la función de callback utilizando comentarios JSDoc. Aquí tienes un ejemplo:

    declare class ClassName {
      /**
       * Emite cuando...
       *
       * @param event "eventName"
       * @param listener Función que será emitida con este evento.
       * @param tag La descripción del parámetro tag.
       * @param callback La descripción de la función de callback.
       * @param err La descripción del parámetro error.
       * @param time La descripción del parámetro time.
       * @param key La descripción del parámetro key.
       */
      on(
        event: 'eventName',
        listener: (
          tag: string,
          callback: (err: string, time: number, key: string) => void
        ) => void
      ): this;
    }
    

    En este ejemplo, agregamos comentarios JSDoc para los parámetros anidados tag, callback, err, time y key. Ahora, cuando pases el cursor sobre tag y callback en el ejemplo, deberías ver sus respectivos comentarios.

Comments are closed.