我有一个Vue SFC,有两个<script>块:一个用于设置,另一个用于vue router的beforeRouteEnter处理程序,不能在设置中使用.它们可能使用相同的进口产品.当运行npm run dev时,它要求每个脚本块独立于其他块导入它,但是当运行npm run build时,typescript编译器(或linter)抛出一个错误:

src/components/MyComponent.vue:72:8 - error TS2300: Duplicate identifier 'auth'.

import auth from '@/auth'

处理这个问题的正确方法是什么?

推荐答案

需要使用script块来提供script setup语法未涵盖的组件选项是相对常见的情况.

由于Vue 3.3,为此目的提供了defineOptions宏:

<script setup>
...
defineOptions({
  beforeRouteEnter() { ... }

Typescript相关问答推荐

如何根据参数的值缩小函数内的签名范围?

typescribe不能使用值来索引对象类型,该对象类型满足具有该值的另一个类型'

如何使用Zod使一个基于其他字段值的字段为必填字段?

Angular 15使用react 式表单在数组内部创建动态表单数组

限制返回联合的TS函数的返回类型

有没有可能产生输出T,它在视觉上省略了T中的一些键?

接口重载方法顺序重要吗?

使用Redux Saga操作通道对操作进行排序不起作用

将具有Readonly数组属性的对象接口转换为数组

转换器不需要的类型交集

是否有可能避免此泛型函数体中的类型断言?

如果判断空值,则基本类型Gaurd不起作用

在构建Angular 应用程序时,有没有办法通过CLI传递参数?

递归生成常量树形 struct 的键控类型

如何使用useSearchParams保持状态

导航链接不触发自定义挂钩

我如何键入它,以便具有字符串或数字构造函数的数组可以作为字符串或数字键入s或n

在ts中获取级联子K类型?

在Nestjs中,向模块提供抽象类无法正常工作

Next.JS-13(应用程序路由)中发现无效的中间件