从函数复制jsdoc



我有一个js文件,其中包含一组用于修改用户的函数。所有函数都用jsdoc进行了文档化,这样就可以很容易地看到要使用哪些参数以及函数的作用。

然而,我现在想用一个可选的上下文变量来扩展每个函数。所以从这个

/**
* 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),
};
}

它确实起作用,从某种意义上说,正确的函数似乎是用正确的参数调用的,但我似乎无法让IntelliSense在vscode中找到它,这让我认为我可能没有正确地编写jsdoc。

根据vscode的说法,它说new函数只需要一个any[],它当然会这样做,但这不是newUser的文档所说的,所以我的文档有问题吗?还是根本不可能?

似乎有可能


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

这将";"修复";IntelliSense和文档遵循先前定义的函数newUser

最新更新