执行 Jest 测试时未加载类型定义
Types definitions aren't loading when executing Jest tests
我正在构建一个测试实用程序的开源库,其中还包括自定义技术匹配。但是在创建测试文件和 运行 它们时,会出现很多关于类型定义的错误。
参考以下错误当运行yarn test
错误与两个不同的类型定义有关,它们是:
toBeVisible
是一个自定义的 Jest 匹配器,应该来自 @testing-library/jest-dom
toHaveQueryParam
是在我的包内部创建的自定义 Jest 匹配器,我在 @types/jest.d.ts
中声明了定义 - 这个类型定义应该用 declaration merging 加载,但我认为它是由于错误无法工作。
我的问题是:为什么没有加载类型定义?我认为关于 TS 编译器或 Jest 配置应该有问题
很好的问题,我 运行 多次关注这个问题。我使用 jest-extended
which says in their readme,您可能需要在 global.d.ts
文件中导入类型定义。然后将 global.d.ts
文件添加到 tsconfig.json
.
中的 typeRoots
我还在我的存储库内部创建了我自己的笑话匹配器,并将该文件也添加到我的 typeRoots
。
需要注意的是,如果这些文件未包含在您的 tsconfig.json
中,所有这些仍然会失败。例如,您有一个 global.d.ts
文件,但您的 rootDir
设置为 src
(不包括 global.d.ts
)。
这里说的是repo you can reference for a working example. Here is the custom matcher type definitions, global.d.ts importing jest-extended
and tsconfig.json
typeRoots
的定义。
总而言之,我认为您只需将自定义类型显式添加到 compilerOptions
。并确保在 tsconfig.json
文件选择中包含您的自定义类型文件。
{
"compilerOptions": {
"typeRoots": ["./node_modules/@types", "./**/*.d.ts", "./scripts/custom_matchers.ts"]
}
}
我正在构建一个测试实用程序的开源库,其中还包括自定义技术匹配。但是在创建测试文件和 运行 它们时,会出现很多关于类型定义的错误。
参考以下错误当运行yarn test
错误与两个不同的类型定义有关,它们是:
toBeVisible
是一个自定义的 Jest 匹配器,应该来自@testing-library/jest-dom
toHaveQueryParam
是在我的包内部创建的自定义 Jest 匹配器,我在@types/jest.d.ts
中声明了定义 - 这个类型定义应该用 declaration merging 加载,但我认为它是由于错误无法工作。
我的问题是:为什么没有加载类型定义?我认为关于 TS 编译器或 Jest 配置应该有问题
很好的问题,我 运行 多次关注这个问题。我使用 jest-extended
which says in their readme,您可能需要在 global.d.ts
文件中导入类型定义。然后将 global.d.ts
文件添加到 tsconfig.json
.
typeRoots
我还在我的存储库内部创建了我自己的笑话匹配器,并将该文件也添加到我的 typeRoots
。
需要注意的是,如果这些文件未包含在您的 tsconfig.json
中,所有这些仍然会失败。例如,您有一个 global.d.ts
文件,但您的 rootDir
设置为 src
(不包括 global.d.ts
)。
这里说的是repo you can reference for a working example. Here is the custom matcher type definitions, global.d.ts importing jest-extended
and tsconfig.json
typeRoots
的定义。
总而言之,我认为您只需将自定义类型显式添加到 compilerOptions
。并确保在 tsconfig.json
文件选择中包含您的自定义类型文件。
{
"compilerOptions": {
"typeRoots": ["./node_modules/@types", "./**/*.d.ts", "./scripts/custom_matchers.ts"]
}
}