因此,我试图重构名为it('test loadSomething',function(){
//setup
spyOn(MyService, 'loadSomething').and.returnValue('Mocked');
//act
var val = MyService.loadSomething(1);
//check
expect(val).toEqual('Mocked');
});
的模块的类型声明,该模块严格是名称空间结构。
我真的不喜欢在其中包含一千行代码的单个文件,因此我试图将整个类型声明拆分为多个文件,这样做很麻烦。
正如我提到的,我正在为inquirer
模块编写类型声明,该模块不能与es6-modules一起使用。
例如,导出的成员本身是inquirer
类型的对象以及同时包含一些类和接口的名称空间:
PromptModule
可悲的是,我真的找不到一种将查询者模块拆分为每个接口和/或类的单独文件的方法。
我发现的唯一方法是执行名称空间合并,@ Ryan Cavanaugh right below the "Version 2"-heading的评论对此进行了很好的描述。
可悲的是,我无法在import inquirer = require("inquirer");
let question: inquirer.Question = { /* This is a question */ };
inquirer.prompt(question);
inquirer.restoreDefaultPrompts();
inquirer.registerPrompt({ /* this is a prompt */ });
let x = new inquirer.ui.Prompt();
文件中导出合并的名称空间。
这引出我的问题: