namespaceを維持したまま外部モジュールとして他のファイルから読み込むには
環境
- 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以外の変更、あるいは他の手段で解決することはできるのでしょうか?