如何记录与 JSDoc 不一致的 returns?

How to document inconsistent returns with JSDoc?

是否可以为 returns 不一致的函数添加 @return JSDoc 注释?

/**
* @param {Number} a
* @param {Number} b
* @return {Number}
* */
function sum (a, b) {
  if (a < b) return false; //here we have a Boolean
  return a + b; //and here a Number
}

注:

  1. 我已经知道这很糟糕
  2. 不会在我的代码中这样做
  3. 只是对每个人如何处理这个问题感兴趣(除了重构以外的其他方式)。

有个例子right there in the JSDoc @returns documentation:

The return value can have different types

/**
 * Returns the sum of a and b
 * @param {Number} a
 * @param {Number} b
 * @param {Boolean} retArr If set to true, the function will return an array
 * @returns {Number|Array} Sum of a and b or an array that contains a, b and the sum of a and b.
 */
function sum(a, b, retArr) {
    if (retArr) {
        return [a, b, a + b];
    }
    return a + b;
}

例如,使用 |,就像其他时候一样,类型可能会有所不同。