<p dir="auto"><strong>TypeScript Version:</strong>  1.8.29.0 (default for Visual Studio 2015 Update 2)</p>
<p dir="auto"><strong>Code</strong></p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// worked on TS 1.8.4.0
let promises: Promise&lt;number&gt;[];
let promiseall: Promise&lt;number[]&gt; = Promise.all(promises)"><pre class="notranslate"><span class="pl-c">// worked on TS 1.8.4.0</span>
<span class="pl-k">let</span> <span class="pl-s1">promises</span>: <span class="pl-smi">Promise</span><span class="pl-kos">&lt;</span><span class="pl-smi">number</span><span class="pl-kos">&gt;</span><span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">;</span>
<span class="pl-k">let</span> <span class="pl-s1">promiseall</span>: <span class="pl-smi">Promise</span><span class="pl-kos">&lt;</span><span class="pl-smi">number</span><span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">&gt;</span> <span class="pl-c1">=</span> <span class="pl-smi">Promise</span><span class="pl-kos">.</span><span class="pl-en">all</span><span class="pl-kos">(</span><span class="pl-s1">promises</span><span class="pl-kos">)</span></pre></div>
<p dir="auto"><strong>Expected behavior:</strong> No compilation error.</p>
<p dir="auto"><strong>Actual behavior:</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Type 'Promise&lt;Promise&lt;number&gt;[]&gt;' is not assignable to type 'Promise&lt;number[]&gt;'.
  Type 'Promise&lt;number&gt;[]' is not assignable to type 'number[]'.
    Type 'Promise&lt;number&gt;' is not assignable to type 'number'."><pre class="notranslate"><code class="notranslate">Type 'Promise&lt;Promise&lt;number&gt;[]&gt;' is not assignable to type 'Promise&lt;number[]&gt;'.
  Type 'Promise&lt;number&gt;[]' is not assignable to type 'number[]'.
    Type 'Promise&lt;number&gt;' is not assignable to type 'number'.
</code></pre></div>
<p dir="auto"><strong>TypeScript Version:</strong></p>
<p dir="auto">1.8.9</p>
<p dir="auto"><strong>Code</strong></p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="Promise.all([Promise.resolve('')]);  // has type Promise&lt;Promise&lt;string&gt;[]&gt;"><pre class="notranslate"><span class="pl-smi">Promise</span><span class="pl-kos">.</span><span class="pl-en">all</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-smi">Promise</span><span class="pl-kos">.</span><span class="pl-en">resolve</span><span class="pl-kos">(</span><span class="pl-s">''</span><span class="pl-kos">)</span><span class="pl-kos">]</span><span class="pl-kos">)</span><span class="pl-kos">;</span>  <span class="pl-c">// has type Promise&lt;Promise&lt;string&gt;[]&gt;</span></pre></div>
<p dir="auto"><strong>Expected behavior:</strong><br>
The expression has type <code class="notranslate">Promise&lt;string[]&gt;</code> as in 1.8.7<br>
<strong>Actual behavior:</strong><br>
The expression has type <code class="notranslate">Promise&lt;Promise&lt;string&gt;[]&gt;</code></p>