<p dir="auto">TypeScript should support emitting minified JavaScript.</p>
<p dir="auto">There are several different things we could support:</p>
<ol dir="auto">
<li>Just remove whitespace</li>
<li>Minify unobservable identifiers</li>
<li>Remove provably dead code</li>
<li>Whole-program minification (i.e. closure compiler)</li>
<li>(Others?)</li>
</ol>
<p dir="auto">For completeness's sake, this is a list of breaking changes from the 1.0 compiler that we believe very few users will encounter.</p>
<p dir="auto">These are errors that should have been reported and represent very likely errors in user code:</p>
<ul dir="auto">
<li>Comparison operators (&lt;, &gt;) more correctly check their operands for compatibility</li>
<li><code class="notranslate">typeof undefined</code> is now <code class="notranslate">undefined</code>, not <code class="notranslate">any</code></li>
</ul>
<p dir="auto">These mainly cover how certain TypeScript language constructs are emitted in the presence of serious errors in the code:</p>
<ul dir="auto">
<li>Classes with constructor overloads lacking an implementation, or with multiple implementations: emit has changed</li>
<li>Duplicate <code class="notranslate">export =</code> assignments emit has changed</li>
<li>Uses of <code class="notranslate">this</code> in fat arrow function expressions in static initializers no longer capture <code class="notranslate">this</code></li>
<li>Nonsense circular external module declarations are now an error</li>
<li>Some constructs which are early errors in JavaScript are now considered as parse errors</li>
<li>Invalid uses of <code class="notranslate">super</code> in fat arrow function expressions emit has changed</li>
</ul>
<p dir="auto">Emit in some cases has changed to semantically-equivalent, but better, code:</p>
<ul dir="auto">
<li>Array copy code for unused rest parameters is no longer emitted</li>
<li>Exact emit for certain boilerplate constructs (rest args, default parameter values) has changed</li>
</ul>