title: TypeScript reports error when using certain initial values in Array.reduce
body: <p>When using certain initial values in Array.reduce, TypeScript reports a strange error in this <a href="https://www.typescriptlang.org/play/index.html#src=const%20foo%20%3D%20%5B1%2C%202%2C%203%5D.reduce((p%2C%20c)%20%3D%3E%20%7B%0D%0A%09p.bar.push(c)%3B%0D%0A%09return%20p%3B%0D%0A%7D%2C%20%7Bbar%3A%20%5B%5D%7D)%3B%0D%0A%0D%0Adocument.write(%60foo%3D%24%7BJSON.stringify(foo)%7D%60)%3B%0D%0A" rel="nofollow noreferrer">Playground example</a>.</p>
  
  <p>The error <code>Argument of type 'number' is not assignable to parameter of type 'never'</code> is shown for <code>c</code> in line 2 of the following example:</p>
  
  <pre><code>const foo = [1, 2, 3].reduce((p, c) =&gt; {
      p.bar.push(c);
      return p;
  }, {bar: []});
  
  document.write(`foo=${JSON.stringify(foo)}`);
  </code></pre>