Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 库中未捆绑环境类型脚本定义_Typescript_Declaration Files - Fatal编程技术网

Typescript 库中未捆绑环境类型脚本定义

Typescript 库中未捆绑环境类型脚本定义,typescript,declaration-files,Typescript,Declaration Files,我正在使用TSDX工具构建react typescript库。我在@types/目录中导出了许多类型,当我在应用程序中使用这些类型时,编译器会很清楚地找到它们 然而,在我的构建过程中,它们并没有被复制到我的输出包中,这让我感到惊讶,因为它们是通过代码引用的(代码确实被正确绑定了) 信不信由你,这实际上是故意的 您可以在tsconfig.json中定义类型的位置,并且希望它们始终位于最终构建中(因为它们没有移动)。i、 e.鉴于这种结构: src/app.ts types/app.d.ts Ty

我正在使用TSDX工具构建react typescript库。我在
@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']
}