JSDoc中如何定义这个函数结构?
How to define this function structure in JSDoc?
假设我有一个创建动态函数的函数 returns 它。
Function
采用 String
和 returns String
.
类型的数据参数
/**
* @param {String} data
* @returns {???}
*/
const foo = data => {
let functionString = 'return data;'
return Function('data', functionString)
}
我希望它以适当的定义出现在 VSCode Intellisense 中。如何在 JSDoc 中记录它?
您可以使用 namepath 来记录内部成员。根据文档:
Namepaths in JSDoc 3
When referring to a JavaScript variable that is elsewhere in your documentation, you must provide a unique identifier that maps to that variable. A namepath provides a way to do so and disambiguate between instance members, static members and inner variables.
Basic Syntax Examples of Namepaths in JSDoc 3
myFunction
MyConstructor
MyConstructor#instanceMember
MyConstructor.staticMember
MyConstructor~innerMember // note that JSDoc 2 uses a dash
因为您想在 foo
中引用 returned 内部 Function
,您必须使用最后一个选项来记录函数的内部成员。
要使用名称路径,您必须使用标识符,以便 JSDoc 可以识别成员,这是通过声明文档中提到的变量来实现的。您可以将 return 值定义为变量,并将 return 定义为变量。因此:
/**
* @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
}
通过上面的内容,我们将之前的return值定义为一个名为newFunction
的变量。因此,我们可以使用名称路径将其引用为 foo~newFunction
,因为它现在是 foo
的内部成员,然后将其设置为 foo
的 return 值。然后你可以 return newFunction
.
假设我有一个创建动态函数的函数 returns 它。
Function
采用 String
和 returns String
.
/**
* @param {String} data
* @returns {???}
*/
const foo = data => {
let functionString = 'return data;'
return Function('data', functionString)
}
我希望它以适当的定义出现在 VSCode Intellisense 中。如何在 JSDoc 中记录它?
您可以使用 namepath 来记录内部成员。根据文档:
Namepaths in JSDoc 3
When referring to a JavaScript variable that is elsewhere in your documentation, you must provide a unique identifier that maps to that variable. A namepath provides a way to do so and disambiguate between instance members, static members and inner variables.
Basic Syntax Examples of Namepaths in JSDoc 3
myFunction MyConstructor MyConstructor#instanceMember MyConstructor.staticMember MyConstructor~innerMember // note that JSDoc 2 uses a dash
因为您想在 foo
中引用 returned 内部 Function
,您必须使用最后一个选项来记录函数的内部成员。
要使用名称路径,您必须使用标识符,以便 JSDoc 可以识别成员,这是通过声明文档中提到的变量来实现的。您可以将 return 值定义为变量,并将 return 定义为变量。因此:
/**
* @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
}
通过上面的内容,我们将之前的return值定义为一个名为newFunction
的变量。因此,我们可以使用名称路径将其引用为 foo~newFunction
,因为它现在是 foo
的内部成员,然后将其设置为 foo
的 return 值。然后你可以 return newFunction
.