
[英]How to make an wrapper class to copy the JSDoc from a provided function?
[英]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.