Vue 3:设置脚本,TS 问题:"An import declaration can only be used in a namespace or module."
Vue 3: Setup Script, TS Problem: "An import declaration can only be used in a namespace or module."
在 Vue 3 中使用带有打字稿的设置脚本时,我在 vscode 中收到一条错误消息:
“导入声明只能在命名空间或模块中使用。”
外部库和自己的 vue 组件会发生这种情况。
我。即:
<script setup lang="ts">
// ...
// ASSETS
import SvgCircle from '@/assets/img/IconsSvg/SvgCircle.vue';
// MODELS
import { IApiParams } from '@/models/api/apiparams.interface
// import { EBp } from '@/models/enum/baseParams.enum';
// LIBS
import justSafeGet from 'just-safe-get';
// ...
</script>
所有这些都在 vscode 中出现红线。其他如从 vue 或 vue-router 导入或自己的可组合项不会出现红线。
我找不到有助于修复它的方法。
有人明白这一点并有线索吗?
通常你应该先导入。
<script setup lang="ts">
import SvgCircle from '@/assets/img/IconsSvg/SvgCircle.vue'; // ASSETS
import { EBp } from '@/models/enum/baseParams.enum'; // MODELS
import justSafeGet from 'just-safe-get'; // LIBS
... // Any code here
</script>
我无法用枚举(在 SFC 中)但用接口重复错误。这就是为什么我现在在我的描述中添加了一个接口导入。
经过更长时间的搜索,我找到了一个可行的解决方案。
解决方案 1:“导入类型”
import type { IApiParams } from '@/models/api/apiparams.interface;
解决方案 2:“导入 * 为”
import * as IApi from '@/models/api/apiparams.interface;
const apiParmams: IApi.IApiParams = = {
// ...
}```
Both seem to not throw an error.
在 Vue 3 中使用带有打字稿的设置脚本时,我在 vscode 中收到一条错误消息: “导入声明只能在命名空间或模块中使用。”
外部库和自己的 vue 组件会发生这种情况。
我。即:
<script setup lang="ts">
// ...
// ASSETS
import SvgCircle from '@/assets/img/IconsSvg/SvgCircle.vue';
// MODELS
import { IApiParams } from '@/models/api/apiparams.interface
// import { EBp } from '@/models/enum/baseParams.enum';
// LIBS
import justSafeGet from 'just-safe-get';
// ...
</script>
所有这些都在 vscode 中出现红线。其他如从 vue 或 vue-router 导入或自己的可组合项不会出现红线。 我找不到有助于修复它的方法。
有人明白这一点并有线索吗?
通常你应该先导入。
<script setup lang="ts">
import SvgCircle from '@/assets/img/IconsSvg/SvgCircle.vue'; // ASSETS
import { EBp } from '@/models/enum/baseParams.enum'; // MODELS
import justSafeGet from 'just-safe-get'; // LIBS
... // Any code here
</script>
我无法用枚举(在 SFC 中)但用接口重复错误。这就是为什么我现在在我的描述中添加了一个接口导入。
经过更长时间的搜索,我找到了一个可行的解决方案。
解决方案 1:“导入类型”
import type { IApiParams } from '@/models/api/apiparams.interface;
解决方案 2:“导入 * 为”
import * as IApi from '@/models/api/apiparams.interface;
const apiParmams: IApi.IApiParams = = {
// ...
}```
Both seem to not throw an error.