Javascript 如何在JSDoc中定义这个函数结构?

Javascript 如何在JSDoc中定义这个函数结构?,javascript,jsdoc,Javascript,Jsdoc,假设我有一个创建动态函数并返回它的函数 函数接受类型为String的数据参数并返回String /** *@param{String}数据 *@returns{???} */ const foo=数据=>{ 让functionString='返回数据;' 返回函数('data',functionString) }您可以使用文档来记录内部成员。根据文件: JSDOC3中的名称路径 当引用文档中其他地方的JavaScript变量时,必须提供映射到该变量的唯一标识符。namepath提供了这样一种方

假设我有一个创建动态函数并返回它的函数

函数
接受类型为
String
的数据参数并返回
String

/**
*@param{String}数据
*@returns{???}
*/
const foo=数据=>{
让functionString='返回数据;'
返回函数('data',functionString)
}
您可以使用文档来记录内部成员。根据文件:

JSDOC3中的名称路径 当引用文档中其他地方的JavaScript变量时,必须提供映射到该变量的唯一标识符。namepath提供了这样一种方法,可以消除实例成员、静态成员和内部变量之间的歧义

JSDoc 3中名称路径的基本语法示例

myFunction
MyConstructor
MyConstructor#instanceMember
MyConstructor.staticMember
MyConstructor~innerMember // note that JSDoc 2 uses a dash
由于要引用返回的内部
函数
inside
foo
,因此必须使用记录函数内部成员的最后一个选项

要使用namepaths,必须使用标识符,以便JSDoc能够识别成员,这是通过声明文档中提到的变量来实现的。您可以将返回值定义为变量并返回该变量。因此:

/**
 * @param {String} data
 * @returns {foo~newFunction}
 */
const foo = data => {
    let functionString = 'return data;'

    /**
     * Notice the idenfier newFunction given to the member
     * You can now document the function here
     */
    let newFunction = Function('data', functionString)
    return newFunction
}
在上面,我们将前一个返回值定义为名为
newFunction
的变量。因此,我们可以使用namepath将其引用为
foo~newFunction
,作为
foo
的内部成员,然后将其设置为
foo
的返回值。然后可以返回
newFunction