awesome-typescript-loader, по-видимому, ведет себя иначе, чем ts-loader и tsc
в отношении выдачи объявлений из файлов ts
с только содержащимися объявлениями типов.
Для данного файла types.ts
только сэкспорт типа
export type MyType = "a"
и импорт в другой модуль index.ts
import { MyType } from "./types";
tsc
и ts-loader
оба выдают файл types.d.ts
, содержащий тип, но неустрашающий-машинопись-погрузчик.Я не могу сказать вам точную причину здесь - единственная ссылка, которую я нашел, заключается в том, что awesome-ts-loaders, по-видимому, пытается быть более интеллектуальным , основанным на более сложном подходе к разрешению зависимостей, который может иметь неприятные последствия в этом крайнем случае.В случае сомнений, я бы предположил, что tsc
будет иметь правильное поведение ссылки.
В любом случае, более идиоматично переименовывать файлы ts
только с объявлениями типов в расширение d.ts
, так как вывод кода не выполняется.излучается.Таким образом, вы получите вопрос , почему файлы d.ts из исходного каталога не копируются в папку сборки tsc
.
Самый простой способ для вас в этом случае - вручную скопировать необходимые файлы d.ts (для API публичной библиотеки или аналогичного) в dist
с помощью шага ручной сборки.Или вы можете использовать новую предустановку набора текста babel с Webpack и иметь отдельный tsc
этап компиляции только для объявлений.