我有一个重载的切换函数,想要记录带有JSDoc的行为。
如果定义了值,则窗口状态设置为truthy参数的布尔值,如果未定义,窗口状态将切换。我正在寻找类似的东西。
/**
* Set the map window in mobile
* @param {undefined|*} on - toggle or set the window state
* - {undefined} toggles window state
* - {*} set window state
*/
toggleWindow(on) {
if (on === undefined) {
on = !this.state.window;
}
this.setState({ mapWindow: !!on });
}
答案 0 :(得分:2)
取自here:
您需要像这样嵌套每个注释的开头和结尾:
/** * DateRange class to store ranges and query dates. * * @constructor * @param {(Moment|Date)} start Start of interval * @param {(Moment|Date)} end End of interval *//** * DateRange class to store ranges and query dates. * * @constructor * @param {!Array} range Array containing start and end dates. *//** * DateRange class to store ranges and query dates. * * @constructor * @param {!String} range String formatted as an IS0 8601 time interval */ function DateRange(start, end) { // ... }
但是,请注意,构造函数重载没有组合在一起。每个重载仍然接收完整的成员列表,因此部分文档变得多余。可能可以在模板中修复。
答案 1 :(得分:0)
由于先前的答案对我不起作用。试试:
/** @type {((param: string) => boolean) & ((param: string, overloadedParam: string) => string))} */
const func = (param, overloadedParam) => { … }
在此归功于GitHub上ExE-Boss的答案: https://github.com/microsoft/TypeScript/issues/25590#issuecomment-480022039
(这适用于标准JS和TS)