Typescriptで以下のような定義をすると、

class A {
  public b: A.B
}

namespace A {
  class B {
  }
}

classAの定義で

[ts] 名前空間 'A' にエクスポートされたメンバー 'B' がありません。

と怒られるし、定義順を逆にするとclassBの定義で

[ts] 名前空間宣言は、それとマージするクラスや関数より前に配置できません。

と怒られるのですが、いい解決方法はありますか?