Typescript 库中未捆绑环境类型脚本定义
我正在使用TSDX工具构建react typescript库。我在Typescript 库中未捆绑环境类型脚本定义,typescript,declaration-files,Typescript,Declaration Files,我正在使用TSDX工具构建react typescript库。我在@types/目录中导出了许多类型,当我在应用程序中使用这些类型时,编译器会很清楚地找到它们 然而,在我的构建过程中,它们并没有被复制到我的输出包中,这让我感到惊讶,因为它们是通过代码引用的(代码确实被正确绑定了) 信不信由你,这实际上是故意的 您可以在tsconfig.json中定义类型的位置,并且希望它们始终位于最终构建中(因为它们没有移动)。i、 e.鉴于这种结构: src/app.ts types/app.d.ts Ty
@types/
目录中导出了许多类型,当我在应用程序中使用这些类型时,编译器会很清楚地找到它们
然而,在我的构建过程中,它们并没有被复制到我的输出包中,这让我感到惊讶,因为它们是通过代码引用的(代码确实被正确绑定了)
信不信由你,这实际上是故意的 您可以在tsconfig.json中定义类型的位置,并且希望它们始终位于最终构建中(因为它们没有移动)。i、 e.鉴于这种结构:
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"
]
}
或者添加一个包含目录中所有类型的typeRoot,注意这一点,它将覆盖任何现有的typeRoot,例如node\u modules/@types
,因此需要重新声明它们
{
typeRoots: ['./types', 'node_modules/@types']
}
然后使用导入的my app
使用类型(如果您已声明路径)
您的最终构建应该包括根目录中的types
目录,它是在tsconfig.json
中定义的
我怀疑您在应用程序源目录中包含了.d.ts
文件,因此不希望它进入生产版本。在这种情况下,您需要手动将其移动到构建中所需的位置,或者根据构建工具使用其他插件将其自动化
{
typeRoots: ['./types', 'node_modules/@types']
}