2016-11-01 5 views
1

返り値が一貫しない関数に対して、JSDocアノテーションを追加することは可能ですか?@returnJSDocで一貫性のないリターンを文書化する方法は?

/** 
* @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. リファクタリング以外の方法でこの問題を誰もがどのように処理するかについては、に興味があります。

答えて

2

right there in the JSDoc @returns documentationあります:

は、戻り値を使用すると、タイプが異なる場合があり、他の回がそうであるように、|を使用し、

/** 
* 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; 
} 

例えば、異なるタイプを持つことができます。

+0

クール、私はそれを逃した。 10分の쿨ダウン後にあなたの答えを受け入れる –

関連する問題