Это на самом деле, хотите верьте, хотите нет, по замыслу.
Вы можете определить местоположение ваших типов в tsconfig. json, и ожидается, что они всегда находятся в окончательной сборке ( Дело в том, что они не перемещены). т.е. с учетом этой структуры:
src/app.ts
types/app.d.ts
Typescript будет ожидать, что ваша опубликованная сборка будет выглядеть примерно так:
build/app.js
build/app.d.ts
types/app.d.ts
Чтобы достичь этого, вы должны либо определить путь к окружающим типам в tsconfig
{
baseUrl: "./",
paths: [
"my-app": "./types/app.d.ts"
]
}
или добавьте тип Root, который будет включать все типы в каталоге, будьте осторожны с этим, он переопределит любые существующие корни типа, такие как *, на node_modules/@types
, поэтому вам нужно переопределить их.
{
typeRoots: ['./types', 'node_modules/@types']
}
и затем использует типы, используя импорт my-app
, если вы объявили путь.
Ожидается, что ваша окончательная сборка будет включать в себя каталог types
в root где он был определен в вашем tsconfig.json
.
Я подозреваю, что вы включаете файл .d.ts
в каталог с исходным кодом приложения, и поэтому не ожидаете, что он когда-либо попадет в рабочую сборку , В этом случае вам нужно будет вручную переместить его в нужное место в вашей сборке или автоматизировать его с помощью какого-либо другого плагина в зависимости от инструментов сборки.