为什么 vue-tsc 认为它应该在我的自定义类型文件中查找 Vue Test Utils 类型?

Why does vue-tsc think it should look for Vue Test Utils types in my custom types file?

我有一个使用 Vite、Vue3、TypeScript 和 Jest 构建的简单项目用于测试。

我有一个名为 Btn.vue 的 Vue 组件,它从我的 @/types/index.d.ts 导入一个 Variant 类型。 (请注意,@ 别名是在我的 tsconfig.json、我的 vite.config.js 和我的 jest.config.js 中配置的)

Btn.vue

<script setup lang="ts">
import { Variant } from '@/types'
// ...the rest of the component
</script>

types/index.d.ts

export type Variant = 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger'

此组件在相邻的规范文件中有一堆测试。测试 运行 很好,全部通过。

Btn.spec.ts

import { mount } from '@vue/test-utils'
import Btn from './Btn.vue'

describe('Btn component', () => {
  // ...all the tests
})

但是,当我使用 vue-tsc --noEmit && vite build 构建项目时,出现如下错误(t运行 为简洁起见)。

node_modules/@vue/test-utils/dist/interfaces/wrapperLike.d.ts:1:10 - error TS2305:Module '"src/types"' has no exported member 'DefinedComponent'.
1 import { DefinedComponent, FindAllComponentsSelector, FindComponentSelector, NameSelector, RefSelector } from 'src/types';
           ~~~~~~~~~~~~~~~~

node_modules/@vue/test-utils/dist/interfaces/wrapperLike.d.ts:1:28 - error TS2305: Module '"src/types"' has no exported member 'FindAllComponentsSelector'.
1 import { DefinedComponent, FindAllComponentsSelector, FindComponentSelector, NameSelector, RefSelector } from 'src/types';
                             ~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@vue/test-utils/dist/interfaces/wrapperLike.d.ts:1:55 - error TS2305: Module '"src/types"' has no exported member 'FindComponentSelector'.
1 import { DefinedComponent, FindAllComponentsSelector, FindComponentSelector, NameSelector, RefSelector } from 'src/types';

vue-tsc 似乎对它应该在哪里寻找 Vue Test Utils 类型感到困惑,并且出于某种原因默认使用我的自定义类型文件。

根据 this reply 我关于 Vue Test Utils Github 的错误报告,该问题源于相关导入,应在下一个版本中修复。我正在使用 ^2.0.0-rc.18 所以这可能意味着 ^2.0.0-rc.19.

同时,将 "skipLibCheck": true, 添加到我的 tsconfig.json 中的 compilerOptions 使构建工作没有错误。