使用 typescript 在 vuejs 中声明原型属性

Posted

技术标签:

【中文标题】使用 typescript 在 vuejs 中声明原型属性【英文标题】:Declare prototype property in vuejs with typescript 【发布时间】:2021-08-18 17:53:42 【问题描述】:

我在 vue 原型中声明 $bus 以访问全局但收到此错误

Property `prototype` does not exist on type vue.

可以帮助我如何使用打字稿进行声明。 Vue 版本是 3。

【问题讨论】:

要创建事件总线,请在此处查看我的答案***.com/a/64019074/8172857 【参考方案1】:

您将不再将其注入到 Vue 原型中。如果您想以类似于原型方法的方式使其全局可访问,您可以使用应用程序实例中的全局属性。

const appInstance = createApp(MyVueApp);
appInstance.config.globalProperties.$bus = myBus;
appInstance.mount('#appId');

如果您想从组件访问它,对于 Option-API 组件,您可以使用this.$bus 访问。对于Composition API,需要用getCurrentInstanceVue方法获取实例,所以:getCurrentInstance().appContext.config.globalProperties.$bus

在将对象添加到实例方面,我不认为 typescript 有任何特定的内容,但是当您从 globalProerties 对象获取它时,您可能需要键入 $bus

【讨论】:

以上是关于使用 typescript 在 vuejs 中声明原型属性的主要内容,如果未能解决你的问题,请参考以下文章

Vue js,使用 TypeScript 从 Vue 中的表单获取数据

VueJS + TypeScript 入门第一课

在普通的 VueJS 项目中使用 Typescript 函数

使用 Typescript 在 VueJS2 项目中使用 Jest 进行测试

VueJS + Typescript:类型上不存在属性

如何在我的 Vuejs 项目中迁移 aws-amplify 以使用 Typescript?