title: Do primitive type names need to be uppercase or lowercase?
body: <pre class="lang-js prettyprint-override"><code>/**
   * @param {String} foo
   * @param {Number} bar
   */
  </code></pre>
  <p>or</p>
  <pre class="lang-js prettyprint-override"><code>/**
   * @param {string} foo
   * @param {number} bar
   */
  </code></pre>
  <p>JSDoc <a href="http://usejsdoc.org/tags-type.html" rel="noreferrer"><code>@type</code></a> documentation is not being explicit about it.</p>
  <p>I always uppercase <code>String</code> and <code>Number</code> because it is my understanding that I need to use the constructor name. In JavaScript, <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" rel="noreferrer"><code>String</code></a> and <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number" rel="noreferrer"><code>Number</code></a> exist as constructors.</p>
  <p>I have noticed inconsistency: I am defining other primitive types (e.g. <code>null</code>, <code>undefined</code>) as lowercase.</p>
  <p>Do primitive type names need to be uppercase or lowercase?</p>