<p dir="auto">Hi, may I ask whether or not this can be made more flexible?</p>
<p dir="auto">We have a project structure that puts the app's content inside the <strong>wwwroot/app</strong> directory that also contains the HTMLs etc, so having a seperate, forced "scripts" directory which outputs there is nothing more than an (unnecessary?) workaround.</p>
<p dir="auto">The structure is like the following:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- wwwroot
  - app
    app.ts
    - module
      module.ts
      - controllers (*.ts)
      - services (*.ts)
      - views (*.html)
  index.html    "><pre class="notranslate"><code class="notranslate">- wwwroot
  - app
    app.ts
    - module
      module.ts
      - controllers (*.ts)
      - services (*.ts)
      - views (*.html)
  index.html    
</code></pre></div>
<p dir="auto">It would be great to have the tsconfig.json just in the "app" directory and it then compiles all .ts that are anywhere below that path, like it is the case with the tsconfig right now, however forced to expect them in the "scripts" dir.</p>
<p dir="auto">Honestly, I think compile-on-save seems unnecessary given the presence of a tsconfig file. The regular way seems way better since when building the project it compiles the TS if missing, compile-on-save seems not to (plus you'd have to expect team members to make sure to enable it and go through all their files).</p>
<p dir="auto">It would be a great help to be able to drop a tsconfig.json in <strong>any</strong> directory, not just the (seemingly) hard-coded "scripts" directory, or at least being able to adjust this path.</p>
<p dir="auto">I tested this with the RC 1 Update 1 and it is quite unflexible there. If there is progress made in that area, please let me know.</p>
<p dir="auto">Thanks in advance and best regards,<br>
chris</p>
<p dir="auto"><strong>TypeScript Version:</strong></p>
<p dir="auto">1.9.0-dev / nightly (1.9.0-dev.20160311)</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="class A
{
    public Foo($value : any) {...}
}

class B extends A
{
    public Foo($value : any) {...}

    public Bar()
    {
        var that = this;

        // #1: Can't hold a reference on super.
        // var base = super; // Error.

        var baseFooFuntion = super.Foo;

        Object.someMethod(function()
        {
            // #2: Is somehow not calling the method with the correct arguments?!?
            baseFooFuntion(42);

            // And you cant use super.Foo(42); =&gt; 'super' can only be referenced in members of derived classes or object literal expressions.
            // So that it produces an error is fine.
        });
    }
}"><pre class="notranslate"><span class="pl-k">class</span> <span class="pl-smi">A</span>
<span class="pl-kos">{</span>
    <span class="pl-k">public</span> <span class="pl-en">Foo</span><span class="pl-kos">(</span><span class="pl-s1">$value</span> : <span class="pl-smi">any</span><span class="pl-kos">)</span> <span class="pl-kos">{</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-k">public</span> <span class="pl-en">Foo</span><span class="pl-kos">(</span><span class="pl-s1">$value</span> : <span class="pl-smi">any</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>...<span class="pl-kos">}</span>

    <span class="pl-k">public</span> <span class="pl-en">Bar</span><span class="pl-kos">(</span><span class="pl-kos">)</span>
    <span class="pl-kos">{</span>
        <span class="pl-k">var</span> <span class="pl-s1">that</span> <span class="pl-c1">=</span> <span class="pl-smi">this</span><span class="pl-kos">;</span>

        <span class="pl-c">// #1: Can't hold a reference on super.</span>
        <span class="pl-c">// var base = super; // Error.</span>

        <span class="pl-k">var</span> <span class="pl-s1">baseFooFuntion</span> <span class="pl-c1">=</span> <span class="pl-smi">super</span><span class="pl-kos">.</span><span class="pl-c1">Foo</span><span class="pl-kos">;</span>

        <span class="pl-smi">Object</span><span class="pl-kos">.</span><span class="pl-en">someMethod</span><span class="pl-kos">(</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-c">// #2: Is somehow not calling the method with the correct arguments?!?</span>
            <span class="pl-en">baseFooFuntion</span><span class="pl-kos">(</span><span class="pl-c1">42</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

            <span class="pl-c">// And you cant use super.Foo(42); =&gt; 'super' can only be referenced in members of derived classes or object literal expressions.</span>
            <span class="pl-c">// So that it produces an error is fine.</span>
        <span class="pl-kos">}</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"><strong>Expected behavior:</strong></p>
<p dir="auto">baseFooFuntion(42); call should work.</p>
<p dir="auto"><strong>Actual behavior:</strong></p>
<p dir="auto">Not working because arguments are not passed correctly.</p>