Я пытаюсь преобразовать проект в TypeScript, и у меня настроено большинство вещей, но я все еще пытаюсь собрать последние несколько частей. Я хочу иметь возможность использовать этот проект TypesScript из обычного проекта JavaScript, поэтому я понимаю, что мне нужно создавать файлы d.ts для моих существующих источников. Мои источники все. js в настоящее время, и мы планируем постепенно переходить на TS со временем. Моя проблема заключается в получении объявлений для отправки с текущими инструкциями export / require.
Простая демонстрация проблемы:
mod1. js
class MyClass {
constructor(name) {
this.name = name;
}
}
module.exports = {
MyClass,
};
mod2 . js
const mod1 = require('./mod1');
module.exports = {
MyClass: mod1.MyClass,
};
Как только я пытаюсь экспортировать MyClass в mod2 для перенаправления пространства имен, из которого можно получить доступ к MyClass при использовании проекта, я получаю Declaration emit for this file requires using private name 'MyClass' from module '"mod1"'. An explicit type annotation may unblock declaration emit.ts(9006)
У нас есть много маршрутов в нашей кодовой базе, группы файлов, которые содержат различные классы, и затем мы используем файлы index. js на каждом уровне dir, чтобы определить, какие элементы доступны в этом пространстве имен, и иногда набор элементов пользовательского интерфейса, которые являются экземплярами экземпляров классов, поэтому мы можем выполнять такие вызовы, как:
const {app, appui} = require('our-cool-app');
app.feature1.doSomething();
appui.component.someButton.click();
Есть ли простое решение, чтобы автоматически получать наши файлы d.ts из источников. js?