老师,在Vue3的setup语法糖中,不能进行暴露emitter,但是类型声明不知道搞,麻烦老师帮我看一下。
来源:5-11 使用新版 mitt 时报出类型错误的解决方案

慕尼黑5268175
2024-12-04
老师,在Vue3的setup语法糖中,没办法将emitter直接进行暴露,我采用了在APP组件中创建emitter实例,然后Form和Input组件可以通过inject获取同一个emitter实例,但是类型声明不知道搞,麻烦老师帮我看一下。
报错地方const emitter = inject<mitt.Emitter>(‘emitter’);
Cannot find namespace ‘mitt’.ts-plugin(2503)
git仓库地址:git@gitee.com:zhai-siqi/vue3_zhihu.git
写回答
2回答
-
张轩
2024-12-07
同学你好
这样处理一下就好
import mitt, { Emitter } from 'mitt' const emitter = inject<Emitter<Events>>('emitter'); // 注意现在 emitter 还有一个 undefined 的联合类型,用的时候可以排除一下或者也可以使用类型断言直接排除掉
// 或者你可以讲这些类型文件都单独的放在一个文件中,这样就可以避免这个问题
012024-12-10 -
张轩
2024-12-05
同学你好
你现在这个问题解决了吗? 我看你在 Input 中是这么写的,已经没有错误了。
const emitter = inject<MyEmitter>('emitter')
012024-12-06
相似问题