为什么 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
使构建工作没有错误。
我有一个使用 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
使构建工作没有错误。