如何使用 JSDoc 向 class 中的函数添加参数

How to add a paramater to a function in a class with JSDoc

所以让我们在这里设置table。

我有一个名为 Command 的 class,其中 class 我有一个对象作为具有 3 个属性的参数 (name, description, execute())

class Command {
  /**
   *
   * @param {Object} opts
   * @param {String} opts.name
   * @param {String} opts.description
   * @param {Function} opts.execute
   */
  constructor(opts) {
    this.name = opts.name;
    this.description = opts.description;
    this.execute = opts.execute;
  }
}

execute 属性 是一个函数,我想为这些函数中的参数传递另一组 JSDoc 行。

大体上应该是这样的

module.exports = {
  name: "Hello!",
  description: "----",
  /**
   * @param {Message} message
   * @param {Client} client
   * @param {Array} args
   */
  execute(message, client, args) {},
};

是否可以这样做,或者我是否必须切换到 TypeScript?

提前致谢

可以使用typedefproperty,但是需要在所有使用的文件上都写上,最好用tsconfig.json.

你不需要 typescript,你只需要 tsconfig.json,当然 typescript 会更好。

https://www.typescriptlang.org/docs/handbook/tsconfig-json.html


/**
 * The complete Triforce, or one or more components of the Triforce.
 * @typedef {Object} WishGranter~Triforce
 * @property {boolean} hasCourage - Indicates whether the Courage component is present.
 * @property {boolean} hasPower - Indicates whether the Power component is present.
 * @property {boolean} hasWisdom - Indicates whether the Wisdom component is present.
 */

/**
 * A class for granting wishes, powered by the Triforce.
 * @class
 * @param {...WishGranter~Triforce} triforce - One to three {@link WishGranter~Triforce} objects
 * containing all three components of the Triforce.
 */
function WishGranter(triforce) {}