<p dir="auto"><code class="notranslate">.d.tsx</code> files should probably be treated as <code class="notranslate">.d.ts</code> files, or cause a warning telling the user that <code class="notranslate">.d.tsx</code> doesn't work, and that they should rename the file to <code class="notranslate">.d.ts</code>.</p>
<p dir="auto">Moving over request from here: <a href="https://typescript.codeplex.com/workitem/2464" rel="nofollow">https://typescript.codeplex.com/workitem/2464</a></p>
<p dir="auto">Proposed Solution:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="class A {
    [index: number]: A; // &lt;- since you can already do this
    (...args): A; // &lt;- why not allow this also?
    constructor(...args) { }
}"><pre class="notranslate"><span class="pl-k">class</span> <span class="pl-smi">A</span> <span class="pl-kos">{</span>
    <span class="pl-kos">[</span><span class="pl-s1">index</span>: <span class="pl-smi">number</span><span class="pl-kos">]</span>: <span class="pl-smi">A</span><span class="pl-kos">;</span> <span class="pl-c">// &lt;- since you can already do this</span><span class="pl-c1"></span>
    <span class="pl-kos">(</span>...<span class="pl-s1">args</span><span class="pl-kos">)</span>: <span class="pl-smi">A</span><span class="pl-kos">;</span> <span class="pl-c">// &lt;- why not allow this also?</span>
    <span class="pl-en">constructor</span><span class="pl-kos">(</span>...<span class="pl-s1">args</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-kos">}</span>
<span class="pl-kos">}</span></pre></div>