繁体   English   中英

从 function 复制 jsdoc

[英]copy jsdoc from function

我有一个 js 文件,其中包含用于修改用户的一堆函数。 所有功能都使用 jsdoc 进行记录,因此可以轻松查看要使用的 arguments 以及 function 的功能。

但是,我现在想使用可选的上下文变量扩展每个 function。 所以从这

/**
 * creates a new user object
 * @param {string} email
 * @param {string} displayName
 * @param {string} password
 * @returns {User|Error}
 */
function newUser(email, displayName, password)

对此

/**
 * creates a new user object
 * @param {string} email
 * @param {string} displayName
 * @param {string} password
 * @param {*} ctx
 * @returns {User|Error}
 */
function newUser(email, displayName, password, ctx)

但是由于我有很多函数会使用相同的ctx变量,所以我认为我可以创建一个包装器,就像这样

function withContext(ctx) {
  /**
   * @namespace
   * @borrows newUser as new
   */
  return {
    new: (...args) => newUser(...args, ctx),
  };
}

它确实有效,从某种意义上说,正确的 function 似乎是用正确的 arguments 调用的,但我似乎无法让 IntelliSense 在 vscode 中找到它,这让我认为我可能没有正确编写 jsdoc .

根据 vscode 它说new的 function 只需要一个any[] ,它当然可以,但这不是newUser的文档状态,所以我的文档有问题还是根本不可能?

好像有可能


/**
 * @typedef {Object} UserService
 * @property {newUser} newUser
 */
/**
 * @returns {UserService}
 */
function withContext(ctx) {
  return {
    newUser: (...args) => newUser(...args, ctx),
  };
}

这将“修复” IntelliSense,并且文档遵循之前定义的 function newUser

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM