<p dir="auto">This is a somewhat cosmetic/quality of life issue, but I found the compiler error in this particular case could have been much more helpful.</p>
<p dir="auto"><strong>TypeScript Version:</strong> 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="interface A { }
class B extends A { }"><pre class="notranslate"><span class="pl-k">interface</span> <span class="pl-smi">A</span> <span class="pl-kos">{</span> <span class="pl-kos">}</span>
<span class="pl-k">class</span> <span class="pl-smi">B</span> <span class="pl-k">extends</span> <span class="pl-smi">A</span> <span class="pl-kos">{</span> <span class="pl-kos">}</span></pre></div>
<p dir="auto"><strong>Expected behavior:</strong> An error alluding to the fact that <code class="notranslate">A</code> cannot be extended because it is an interface.</p>
<p dir="auto"><strong>Actual behavior:</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="a.ts(2,17): error TS2304: Cannot find name 'A'."><pre class="notranslate">a.ts(2,17): error TS2304: Cannot find name <span class="pl-s"><span class="pl-pds">'</span>A<span class="pl-pds">'</span></span>.</pre></div>
<p dir="auto"><strong>TypeScript Version:</strong><br>
1.8.7</p>
<p dir="auto"><strong>Code</strong></p>
<p dir="auto">tsconfig.json</p>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
    &quot;compilerOptions&quot;: {
        &quot;module&quot;: &quot;commonjs&quot;,
        &quot;target&quot;: &quot;es6&quot;,
        &quot;declaration&quot;: true
    },
    &quot;files&quot;: [
        &quot;main.ts&quot;,
        &quot;mytypes.ts&quot;
    ]
}"><pre class="notranslate">{
    <span class="pl-ent">"compilerOptions"</span>: {
        <span class="pl-ent">"module"</span>: <span class="pl-s"><span class="pl-pds">"</span>commonjs<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"target"</span>: <span class="pl-s"><span class="pl-pds">"</span>es6<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"declaration"</span>: <span class="pl-c1">true</span>
    },
    <span class="pl-ent">"files"</span>: [
        <span class="pl-s"><span class="pl-pds">"</span>main.ts<span class="pl-pds">"</span></span>,
        <span class="pl-s"><span class="pl-pds">"</span>mytypes.ts<span class="pl-pds">"</span></span>
    ]
}</pre></div>
<p dir="auto">main.ts</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import {MyClassAlias} from './mytypes';

let a: MyClassAlias = new MyClassAlias();"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-kos">{</span><span class="pl-smi">MyClassAlias</span><span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">'./mytypes'</span><span class="pl-kos">;</span>

<span class="pl-k">let</span> <span class="pl-s1">a</span>: <span class="pl-smi">MyClassAlias</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-smi">MyClassAlias</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">mytypes.ts</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="export class MyClass {
    public a: number;
}

export type MyClassAlias = MyClass;"><pre class="notranslate"><span class="pl-k">export</span> <span class="pl-k">class</span> <span class="pl-smi">MyClass</span> <span class="pl-kos">{</span>
    <span class="pl-k">public</span> <span class="pl-c1">a</span>: <span class="pl-smi">number</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">export</span> <span class="pl-k">type</span> <span class="pl-smi">MyClassAlias</span> <span class="pl-c1">=</span> <span class="pl-smi">MyClass</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Expected behavior:</strong><br>
Object created using alias type.</p>
<p dir="auto"><strong>Actual behavior:</strong><br>
Compilation error:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="main.ts(3,27): error TS2304: Cannot find name 'MyClassAlias'.
"><pre class="notranslate"><code class="notranslate">main.ts(3,27): error TS2304: Cannot find name 'MyClassAlias'.

</code></pre></div>
<p dir="auto">in <code class="notranslate">vscode</code> (0.10.11) syntax is marked as error as well:</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/14092227/14333957/8ed73bb0-fc51-11e5-8e7d-459b05b0f03b.png"><img src="https://cloud.githubusercontent.com/assets/14092227/14333957/8ed73bb0-fc51-11e5-8e7d-459b05b0f03b.png" alt="snip_20160406234306" style="max-width: 100%;"></a></p>
<p dir="auto">but IntelliSense seems to work:</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/14092227/14333989/c42ea8c0-fc51-11e5-89eb-04dc58dff1ad.png"><img src="https://cloud.githubusercontent.com/assets/14092227/14333989/c42ea8c0-fc51-11e5-89eb-04dc58dff1ad.png" alt="snip_20160406234539" style="max-width: 100%;"></a></p>