如何为名称空间结构的模块编写类型声明

时间:2019-06-21 11:41:39

标签: typescript namespaces declaration typescript-declarations

因此,我试图重构名为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(); 文件中导出合并的名称空间。

这引出我的问题:

  • 有没有办法实现这个目标?
  • 如何将查询者模块包装为易于维护的类型声明?

0 个答案:

没有答案