我已经挣扎了一个星期了,所以如果有人知道的话,如果你能帮忙,我将不胜感激。
我一直在将基于vue3 2的代码转换为vue3作为一个新项目。我不使用coposition,而是使用它作为基于对象的组件方式.
由于用类型脚本编写的外部模块也被导入和使用,所以组件被defineComponent()包装。
一切都很好,但全球混合部分是问题所在。正如vue正式文档中所描述的那样,用*.js编写的混音被注册为具有app.mixin()的全局混合器。
// mixin.js
export default {
methods: {
registerBackButtonCallback() {}
}
}如果在组件文件中调用this.registerBackButtonCallback(),
‘输入’从不‘没有呼叫签名’
错误和编译失败。但是,当我将this.registerBackButtonCallback()作为本地混合器使用时,它的调用效果很好。
只有在设置错误时才会发生错误。当"tsconfig.json“中的”严格“或”tsconfig.json“选项设置为false时,它将无错误地编译。
由于上述原因,我认为这个错误必须与打字本有关。我认为进行类型论证会很好,所以在src/shims-vue.d.ts中,就像下面的例子一样,我尝试添加它,但是我仍然得到了错误。
declare module 'vue/types/vue' {
interface Vue {
registerBackButtonCallback: () => void
}
}有没有人尝试过在lang=组件中调用带有脚本vue3“ts”的mehtod全局混合功能?
非常感谢你的建议。
发布于 2022-01-11 08:28:18
定制Vue类型是一种Vue2实践。在Vue3中,自定义属性在@vue/运行时-core的ComponentCustomProperties中定义。
https://stackoverflow.com/questions/70662796
复制相似问题