<p dir="auto">Hello,</p>
<p dir="auto">we moved recently from TS 1.4 to TS 1.5 with Visual Studio 2013.</p>
<p dir="auto">When we have the following class definition:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="export class ErrorClass {
    public foo({bar: number}) { }
}"><pre class="notranslate"><code class="notranslate">export class ErrorClass {
    public foo({bar: number}) { }
}
</code></pre></div>
<p dir="auto">With the Option "Generate declaration files" and "combine javascript output into file" to true, the resulting declaration for this file will be:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="class ErrorClass {
    foo({bar: }: {
        bar: any;
    }): void;
}"><pre class="notranslate"><code class="notranslate">class ErrorClass {
    foo({bar: }: {
        bar: any;
    }): void;
}
</code></pre></div>
<p dir="auto">Which is syntactically incorrect: The first "bar" is missing the type specifier (and is of type number instead of any).</p>
<p dir="auto">This will cause that projects using this declaration file fails to compile.</p>
<p dir="auto">Can anyone reproduce this? Is there a fix available?</p>
<p dir="auto">Kind regards,<br>
Timo</p>
<p dir="auto">I have an interface that is supposed to have a function signature of:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="(param: {prop: boolean}): any"><pre class="notranslate"><code class="notranslate">(param: {prop: boolean}): any
</code></pre></div>
<p dir="auto">but I forget the parameter name (I'm not sure if this signature is considered valid):</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="({prop: boolean}): any"><pre class="notranslate"><code class="notranslate">({prop: boolean}): any
</code></pre></div>
<p dir="auto">When compiling this invalid interface with the <code class="notranslate">--declaration</code> flag, an invalid <code class="notranslate">.d.ts</code> file results:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="/* foo.ts */
export interface SomeInterface {
    ({prop: boolean}): any
}"><pre class="notranslate"><code class="notranslate">/* foo.ts */
export interface SomeInterface {
    ({prop: boolean}): any
}
</code></pre></div>
<p dir="auto"><code class="notranslate">tsc foo.ts --module commonjs --declaration</code></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="/* foo.d.ts */
export interface SomeInterface {
    ({prop: }: {
        prop: any;
    }): any;
}"><pre class="notranslate"><code class="notranslate">/* foo.d.ts */
export interface SomeInterface {
    ({prop: }: {
        prop: any;
    }): any;
}
</code></pre></div>
<p dir="auto">If parameter names are optional, this should produce a valid <code class="notranslate">.d.ts</code> file. If parameter names are required, <code class="notranslate">tsc</code> should throw an error, or at least warn me that there is an issue.</p>