title: Declaration merging of interfaces in inherited class namespace
body: <p>This doesn't seem to be covered in the manual.</p>
  
  <p>I'm curious about why interfaces with the same name, in separate but inherited class namespaces, are not merged. The example below shows that the second interface shadows the first instead of being merged with it. Since members of the inherited namespace are visible, my gut was thinking the interfaces would be merged. I realize that I can explicitly declare <code>Bar.IOptions</code> to extend <code>Foo.IOptions</code>, I'm just wondering if the current behavior is as intended?</p>
  
  <pre><code>class Foo {
      constructor(options: Foo.IOptions = {}) {
          this._a = options.a || 0;
      }
      private _a: number;
  }
  
  
  namespace Foo {
      export interface IOptions {
          a?: number;
      }
  
      export const c = 12;
  }
  
  
  class Bar extends Foo {
      constructor(options: Bar.IOptions) {
          super();
          this._b = options.b;  // okay
          this._c = Bar.c;      // okay, inherited from Foo
          this._a2 = options.a; // fail
      }
  
      private _b: string;
      private _c: number;
      private _a2: number;
  }
  
  
  namespace Bar {
      export interface IOptions {
          b?: string;
      }
  }
  </code></pre>