<p dir="auto">Given the typescript:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="let impl: I = {
    a: 12,
    explicitVoid2: () =&gt; this.a, // ok, this: any because it refers to some outer object (window?)
    explicitVoid1() { return 12; },
    explicitStructural() {
        return this.a;
    },
    explicitInterface() {
        return this.a;
    },
    explicitThis() {
        return this.a;
    },
}"><pre class="notranslate"><span class="pl-k">let</span> <span class="pl-s1">impl</span>: <span class="pl-smi">I</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span>
    <span class="pl-c1">a</span>: <span class="pl-c1">12</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitVoid2</span>: <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">,</span> <span class="pl-c">// ok, this: any because it refers to some outer object (window?)</span>
    <span class="pl-en">explicitVoid1</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-c1">12</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitStructural</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitInterface</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitThis</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">Expected:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="var impl = {
    a: 12,
    explicitVoid2: function () { return _this.a; },
    explicitVoid1: function () { return 12; },
    explicitStructural: function () {
        return this.a;
    },
    explicitInterface: function () {
        return this.a;
    },
    explicitThis: function () {
        return this.a;
    }
};"><pre class="notranslate"><span class="pl-k">var</span> <span class="pl-s1">impl</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span>
    <span class="pl-c1">a</span>: <span class="pl-c1">12</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitVoid2</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-s1">_this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitVoid1</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-c1">12</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitStructural</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitInterface</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitThis</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span>
<span class="pl-kos">}</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">Actual:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="var impl = {
    a: 12,
    explicitVoid2: function () { return _this.a; },
    explicitVoid1: // ok, this: any because it refers to some outer object (window?)
    function () { return 12; },
    explicitStructural: function () {
        return this.a;
    },
    explicitInterface: function () {
        return this.a;
    },
    explicitThis: function () {
        return this.a;
    }
};"><pre class="notranslate"><span class="pl-k">var</span> <span class="pl-s1">impl</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span>
    <span class="pl-c1">a</span>: <span class="pl-c1">12</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitVoid2</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-s1">_this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitVoid1</span>: <span class="pl-c">// ok, this: any because it refers to some outer object (window?)</span>
    <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-c1">12</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitStructural</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitInterface</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-en">explicitThis</span>: <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">a</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span>
<span class="pl-kos">}</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">Test failures:</p>
<ol dir="auto">
<li>thisTypeInFunctions</li>
<li>others?</li>
</ol>
<p dir="auto"><strong>TypeScript Version:</strong></p>
<p dir="auto">1.8.0</p>
<p dir="auto"><strong>Code</strong></p>
<p dir="auto">create project. create ASP.NET Web Application. create asp.net 5 empty website. create scripts folder in solution. create app folder in wwwroot. create typescript file. create tsconfig.json in scripts folder and build:</p>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
  &quot;compilerOptions&quot;: {
    &quot;noImplicitAny&quot;: false,
    &quot;noEmitOnError&quot;: true,
    &quot;removeComments&quot;: false,
    &quot;sourceMap&quot;: true,
    &quot;target&quot;: &quot;es5&quot;,
    &quot;module&quot;: &quot;commonjs&quot;,
    &quot;outDir&quot;: &quot;../wwwroot/app/&quot;,
    &quot;experimentalDecorators&quot;: true,
    &quot;emitDecoratorMetadata&quot;: true 
  },
  &quot;exclude&quot;: [
    &quot;node_modules&quot;,
    &quot;wwwroot&quot;
  ]
}"><pre class="notranslate">{
  <span class="pl-ent">"compilerOptions"</span>: {
    <span class="pl-ent">"noImplicitAny"</span>: <span class="pl-c1">false</span>,
    <span class="pl-ent">"noEmitOnError"</span>: <span class="pl-c1">true</span>,
    <span class="pl-ent">"removeComments"</span>: <span class="pl-c1">false</span>,
    <span class="pl-ent">"sourceMap"</span>: <span class="pl-c1">true</span>,
    <span class="pl-ent">"target"</span>: <span class="pl-s"><span class="pl-pds">"</span>es5<span class="pl-pds">"</span></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">"outDir"</span>: <span class="pl-s"><span class="pl-pds">"</span>../wwwroot/app/<span class="pl-pds">"</span></span>,
    <span class="pl-ent">"experimentalDecorators"</span>: <span class="pl-c1">true</span>,
    <span class="pl-ent">"emitDecoratorMetadata"</span>: <span class="pl-c1">true</span> 
  },
  <span class="pl-ent">"exclude"</span>: [
    <span class="pl-s"><span class="pl-pds">"</span>node_modules<span class="pl-pds">"</span></span>,
    <span class="pl-s"><span class="pl-pds">"</span>wwwroot<span class="pl-pds">"</span></span>
  ]
}</pre></div>
<p dir="auto"><strong>Expected behavior:</strong><br>
I expect this to build with no errors. What is strange is that this works in Windows 10 but not on my Windows 7 machine with the same set up (Visual studio 2015, update 1, update 2 rc). When you look at the error it is displaying an incorrect path: tsconfig.json/tsconfig.json. It seems to think there is a folder tsconfig.json when there is not. I have ran the tsconfig contents through a json validator to make sure it is correct.</p>
<p dir="auto"><strong>Actual behavior:</strong></p>
<blockquote>
<p dir="auto">Error TS5014  Build: Failed to parse file 'C:/Users/Documents/Visual Studio 2015/Projects/CNAClient/src/CNAClient/scripts/tsconfig.json/tsconfig.json': Invalid character.    CNAClient   C:\Users\Documents\Visual Studio 2015\Projects\CNAClient\src\CNAClient\VSTSC    1</p>
</blockquote>