Поэтому я пытаюсь реорганизовать объявление типа модуля с именем inquirer
, который строго структурирован в пространстве имен.
Мне действительно не нравится иметь один файл с 1k строк кода внутрииз-за этого, поэтому я попытался разделить объявление типа целиком на несколько файлов, и у меня возникли большие проблемы с этим.
General
Как я уже говорил, я пишу объявления типа длямодуль с именем inquirer
, который не работает с es6-модулями.
Например, сам экспортируемый член является объектом типа PromptModule
и пространством имен с некоторыми классами и интерфейсами одновременно:
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();
К сожалению, я действительно не смог найти способ разделить модуль-запросчик на отдельные файлы для каждого интерфейса и / или класса.
Единственный способ, который я нашел, - это выполнить пространство имен.слияние, которое хорошо описано в комментарии @Ryan Cavanaugh прямо под заголовком "Version 2" .
К сожалению, я не смог экспортировать объединенное пространство имен в моем index.d.ts
-файле.
Это подводит меня к моему вопросу:
- Есть ли способ достичь этой цели?
- Как я могу превратить модуль-запросчик в приятный для обслуживанияобъявление типа?