У меня есть модуль в TypeScript, и когда он компилируется, он не копирует мои файлы пользовательских объявлений, такие как интерфейсы.
Пример конфигурации:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"declaration": true,
"outDir": "./lib",
"strict": true,
"typeRoots": ["node_modules/@types"],
"esModuleInterop": true
},
"include": ["src/**/*.ts"],
"exclude": ["dist", "lib", "node_modules"]
}
Когда я компилирую файлы, файлы объявлений и файлы JavaScript создаются в папке lib
благодаря флажку declaration
. Однако мои пользовательские интерфейсы не копируются в lib
, и они могут быть полезны.
Пример структуры:
/lib
- index.d.ts // It contains an error because it is trying to export interface, and it is not in the folder
- index.js
- example.js
- example.d.ts
- interface.d.ts // missing!!
/src
- index.ts // Here is exported my interface and example function
- example.ts
- interface.d.ts
Я мог бы удалить расширение .d
, но тогда файлы были бы сгенерированы как пустой модуль JavaScript.
Возможно, эти файлы будут находиться в папке lib
напрямую, когда я компилирую с помощью TypeScript, или я должен скопировать файлы после этого с помощью некоторой команды: ex cp src/*.d.ts lib/
Я не хочу использовать метод копирования, потому что все интерфейсы будут экспортированы, и я просто хочу экспортировать интерфейсы, экспортированные / используемые в модуле index.d.ts
. Может быть, нет другого варианта.