TypeScript allowJs and outFile doesn't emit the JS module
<p>The following excerpt from the TypeScript 1.8 Release Notes indicates that in the below example, the contents of bar.js should be emitted as a "bar" module in the final bundled output, given my use of allowJs in tsconfig.</p>

<p>The excerpt from <a href="https://www.typescriptlang.org/docs/release-notes/typescript-1.8.html" rel="nofollow">TypeScript 1.8 Release Notes</a>: </p>

<blockquote>
  <p>.js files are now allowed as input to tsc. The TypeScript compiler checks the input .js files for syntax errors, and emits valid output based on the --target and --module flags. The output can be combined with other .ts files as well. Source maps are still generated for .js files just like with .ts files.</p>
</blockquote>

<p><em>tsconfig.json</em> -- note the <code>allowJs</code> and the <code>outFile</code> options</p>

<pre><code>{
"compilerOptions": {
    "module": "amd",
    "target": "es5",
    "allowJs": true,
    "outFile": "built.js"
},
"files": [
    "main.ts"
]
</code></pre>

<p>}</p>

<p><em>main.ts</em></p>

<pre><code>import * as foo from './foo';
import * as bar from './bar';

foo.run();
bar.run();
</code></pre>

<p><em>foo.ts</em></p>

<pre><code>export function run() {
    console.log("Foo runnning!");
}
</code></pre>

<p><em>bar.js</em></p>

<pre><code>export function run() {
    console.log("Bar running!");
}
</code></pre>

<p><em>bar.d.ts</em></p>

<pre><code>export function run(): void;
</code></pre>

<p>tsc 1.8.10 emits this output in <em>built.js</em> though.  My question is <strong>why isn't the module in bar.js included in the emitted output?</strong></p>

<pre><code>define("foo", ["require", "exports"], function (require, exports) {
    "use strict";
    function run() {
        console.log("Foo runnning!");
    }
    exports.run = run;
});
define("main", ["require", "exports", "foo", './bar'], function (require, exports, foo, bar) {
    "use strict";
    foo.run();
    bar.run();
});
</code></pre>