• 環境

    • Node.js:8.9.4
    • typescript:2.9.2
  • やりたいこと

    • 名前空間内のクラスをjestやmochaでテストしたい
    • tsconfig.jsonのtargetはES5
    • ソース側は変更したくない
  • 現状の例

    // src/main.ts
    namespace base {
        export class Foo {
            constructor() { console.log("Called Foo Constructor!"); }
            public answerToTheUltimateQuestion(): number { return 42; }
            public callHello() { return new Bar().say() }
        }
    }
    
    // src/Hello.ts
    namespace base {
        export class Bar {
            constructor() { console.log("Called Bar Constructor!"); };
            say(): string { return "hello!"; }
            getFoo() { return new base.Foo(); }
        }
    }
    
    // \__tests__/main.test.ts
    const foo = new base.Foo(); // ReferenceError: base is not defined
    
    test("someMethod", () => {
        expect(foo.answerToTheUltimateQuestion()).toBe(42);
    });
    

モジュール形式に書き直すのが一番良いとはわかっているのですが、ファイル数が多く、
変更しづらい状況なため、どうにかしてまずテストで
壊れてもわかる状況を確保してから書き直していきたいのです。
d.tsファイル、tsconfig.jsonのtarget以外の変更、あるいは他の手段で解決することはできるのでしょうか?