#javascript #typescript #dynamic #import
Вопрос:
У меня есть .d.ts
файл, содержащий интерфейсы. Я заранее не знаю, какие интерфейсы существуют. .d.ts
Файлы создаются библиотекой третьей части, а не из соответствующих .ts
файлов.
export interface ExampleInterface1 {
id: string;
type: string;
}
export interface ExampleInterface2 {
id: string;
type: string;
}
Таким образом, я хочу динамически загружать файл `.d.ts
const data = await import('path/to/my/dynamically/created/file'); // without .d.ts extension
Однако это не работает с .d.ts
файлами. Я тестировал с другими файлами, включая JSON, и содержимое отлично загружается в data
переменную.
Я могу импортировать вручную, но, конечно, это не помогает моей ситуации.
import { ExampleInterface1, ExampleInterface2 } from 'path/to/my/dynamically/created/file';
Как я могу динамически загружать имена и содержимое интерфейса из .d.ts
файла?
Комментарии:
1. Я все еще не понимаю, чего вы пытаетесь достичь. Интерфейсы не существуют во время выполнения, поэтому импортировать их вручную не получится.
2. Я программно анализировал их, чтобы создать файлы с одним индексом «бочонок» как часть библиотеки пакетов. В конце концов, вместо того, чтобы создавать синтаксический анализатор для поиска и игнорирования дубликатов импорта, я обнаружил, что базовая библиотека, которую я использовал, делала в основном то же самое. Наконец я просто прочитал содержимое разных
d.ts
файлов и тупо объединил их, что было достаточно хорошо для моего варианта использования.