【发布时间】:2017-07-25 16:31:34
【问题描述】:
我想记录一个返回类型取决于提供的参数的函数:
/**
* @param {*} x A thing
* @return {????} The thing in an array
*/
function arrayOf(x) { return [x]; }
是否可以命名或引用函数参数的实际类型,以便我可以使用它来指定返回值?
【问题讨论】:
标签: javascript jsdoc
我想记录一个返回类型取决于提供的参数的函数:
/**
* @param {*} x A thing
* @return {????} The thing in an array
*/
function arrayOf(x) { return [x]; }
是否可以命名或引用函数参数的实际类型,以便我可以使用它来指定返回值?
【问题讨论】:
标签: javascript jsdoc
我评论了另一个答案,即我正在寻找的归结为一个通用参数,该参数在 JSDoc 中使用@template 实现。我不知道它是否是核心 JSDoc 的一部分——我认为它是一个 Closure 扩展——但Typescript does recognize it 如果你是通过 TS 运行 JS,或者只是想在你的 IDE 中实现自动完成功能。
改编自该链接:
/**
* @template T
* @param {T} x - A generic parameter that flows through to the return type
* @return {T[]}
*/
function id(x) {
return [x];
}
【讨论】:
不知道是否有通用的表示方式 - 这需要在函数描述中指定,但以下可能是选项:
详细描述,可能会创建一个东西typedef:
/**
* Thing Type
* @typedef {*} thing
*/
/**
* Returns a single element array encapsulating only the param value
* @param {thing} x A thing
* @return {thing[]} The thing in an array
*/
function arrayOf(x) { return [x]; }
简单地说,
/**
* Returns a single element array encapsulating only the param value
* @param {*} x A thing
* @return {*[]} The thing in an array
*/
function arrayOf(x) { return [x]; }
【讨论】: