<p dir="auto">There is already exists es7 proposal <a href="https://github.com/leebyron/ecmascript-more-export-from">https://github.com/leebyron/ecmascript-more-export-from</a><br>
and it accepted to stage-1.</p>
<p dir="auto">It sould be nice to have same in typescript. Without it, it is annoying to write something like:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// module1.ts
module Module1 { // I should explicit wrap to module for export
    // ... module declaration
}
export default Module1

// module2.ts
module Module2 {
    // ... module declaration
}
export default Module2

// index.ts
export {default as Module1} from &quot;./module1&quot;
export {default as Module2} from &quot;./module2&quot;

// usage.ts
import * as Modules from &quot;./index&quot;

// can be used Modules.Module1."><pre class="notranslate"><span class="pl-c">// module1.ts</span>
module <span class="pl-smi">Module1</span> <span class="pl-kos">{</span> <span class="pl-c">// I should explicit wrap to module for export</span>
    <span class="pl-c">// ... module declaration</span>
<span class="pl-kos">}</span>
<span class="pl-k">export</span> <span class="pl-k">default</span> <span class="pl-smi">Module1</span>

<span class="pl-c">// module2.ts</span>
module <span class="pl-smi">Module2</span> <span class="pl-kos">{</span>
    <span class="pl-c">// ... module declaration</span>
<span class="pl-kos">}</span>
<span class="pl-k">export</span> <span class="pl-k">default</span> <span class="pl-smi">Module2</span>

<span class="pl-c">// index.ts</span>
<span class="pl-k">export</span> <span class="pl-kos">{</span><span class="pl-s1">default</span> <span class="pl-k">as</span> <span class="pl-smi">Module1</span><span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"./module1"</span>
<span class="pl-k">export</span> <span class="pl-kos">{</span><span class="pl-s1">default</span> <span class="pl-k">as</span> <span class="pl-smi">Module2</span><span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"./module2"</span>

<span class="pl-c">// usage.ts</span>
<span class="pl-k">import</span> <span class="pl-c1">*</span> <span class="pl-k">as</span> <span class="pl-smi">Modules</span> <span class="pl-k">from</span> <span class="pl-s">"./index"</span>

<span class="pl-c">// can be used Modules.Module1.</span></pre></div>
<p dir="auto">This can be done better with proposal:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// module1.ts
// just a module declaration, without wrapping to explicit module

// module2.ts
// just a module declaration, without wrapping to explicit module

// index.ts
export * as Module1 from &quot;./module1&quot;
export * as Module2 from &quot;./module2&quot;

// usage.ts
import * as Modules from &quot;./index&quot;

// can be used Modules.Module1."><pre class="notranslate"><span class="pl-c">// module1.ts</span>
<span class="pl-c">// just a module declaration, without wrapping to explicit module</span>

<span class="pl-c">// module2.ts</span>
<span class="pl-c">// just a module declaration, without wrapping to explicit module</span>

<span class="pl-c">// index.ts</span>
<span class="pl-k">export</span> <span class="pl-c1">*</span> <span class="pl-k">as</span> <span class="pl-smi">Module1</span> <span class="pl-k">from</span> <span class="pl-s">"./module1"</span>
<span class="pl-k">export</span> <span class="pl-c1">*</span> <span class="pl-k">as</span> <span class="pl-smi">Module2</span> <span class="pl-k">from</span> <span class="pl-s">"./module2"</span>

<span class="pl-c">// usage.ts</span>
<span class="pl-k">import</span> <span class="pl-c1">*</span> <span class="pl-k">as</span> <span class="pl-smi">Modules</span> <span class="pl-k">from</span> <span class="pl-s">"./index"</span>

<span class="pl-c">// can be used Modules.Module1.</span></pre></div>
<p dir="auto">The ES7 proposal is available at: <a href="https://github.com/leebyron/ecmascript-more-export-from">https://github.com/leebyron/ecmascript-more-export-from</a></p>
<p dir="auto">The additions include:</p>
<p dir="auto">reexporting default:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// proposed:
export v from &quot;mod&quot;;

// symmetric to:
import v from &quot;mod&quot;;
export {v};"><pre class="notranslate"><span class="pl-c">// proposed:</span>
<span class="pl-k">export</span> <span class="pl-s1">v</span> <span class="pl-k">from</span> <span class="pl-s">"mod"</span><span class="pl-kos">;</span>

<span class="pl-c">// symmetric to:</span>
<span class="pl-k">import</span> <span class="pl-s1">v</span> <span class="pl-k">from</span> <span class="pl-s">"mod"</span><span class="pl-kos">;</span>
<span class="pl-k">export</span> <span class="pl-kos">{</span><span class="pl-s1">v</span><span class="pl-kos">}</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">reexporting as sub-module:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// proposed:
export * as ns from &quot;mod&quot;;

// symmetric to:
import * as ns from &quot;mod&quot;;
export {ns};"><pre class="notranslate"><span class="pl-c">// proposed:</span>
<span class="pl-k">export</span> <span class="pl-c1">*</span> <span class="pl-k">as</span> <span class="pl-s1">ns</span> <span class="pl-k">from</span> <span class="pl-s">"mod"</span><span class="pl-kos">;</span>

<span class="pl-c">// symmetric to:</span>
<span class="pl-k">import</span> <span class="pl-c1">*</span> <span class="pl-k">as</span> <span class="pl-s1">ns</span> <span class="pl-k">from</span> <span class="pl-s">"mod"</span><span class="pl-kos">;</span>
<span class="pl-k">export</span> <span class="pl-kos">{</span><span class="pl-s1">ns</span><span class="pl-kos">}</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">also allowing combining</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// proposed
export v, {x, y as w} from &quot;mod&quot;
// symmetric to
import v, {x, y as w} from &quot;mod&quot;
As well as

// proposed
export v, * as ns from &quot;mod&quot;
// symmetric to
import v, * as ns from &quot;mod&quot;"><pre class="notranslate"><span class="pl-c">// proposed</span>
<span class="pl-s1">export</span> <span class="pl-s1">v</span><span class="pl-kos">,</span> <span class="pl-kos">{</span>x<span class="pl-kos">,</span> y <span class="pl-s1">as</span> <span class="pl-s1">w</span><span class="pl-kos">}</span> <span class="pl-s1">from</span> <span class="pl-s">"mod"</span>
<span class="pl-c">// symmetric to</span>
<span class="pl-k">import</span> <span class="pl-s1">v</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-s1">x</span><span class="pl-kos">,</span> <span class="pl-s1">y</span> <span class="pl-k">as</span> <span class="pl-s1">w</span><span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"mod"</span>
<span class="pl-smi">As</span> <span class="pl-s1">well</span> <span class="pl-k">as</span>

<span class="pl-c">// proposed</span>
<span class="pl-smi">export</span> <span class="pl-s1">v</span><span class="pl-kos">,</span> <span class="pl-c1">*</span> <span class="pl-k">as</span> <span class="pl-s1">ns</span> <span class="pl-s1">from</span> <span class="pl-s">"mod"</span>
<span class="pl-c">// symmetric to</span>
<span class="pl-k">import</span> <span class="pl-s1">v</span><span class="pl-kos">,</span> <span class="pl-c1">*</span> <span class="pl-k">as</span> <span class="pl-s1">ns</span> <span class="pl-k">from</span> <span class="pl-s">"mod"</span></pre></div>