【发布时间】:2019-12-10 04:50:22
【问题描述】:
我正在使用 TypeScript 开发一个 Vue 应用程序。我创建了一个 mixin(如下面的global.mixin.js 所示),并使用Vue.mixin() 注册了它(如下面的main.ts 所示)。
global.mixin.js
import { mathHttp, engHttp } from '@/common/js/http'
export default {
methods: {
wechatShare(config) {
config.imgUrl = config.imgUrl
mathHttp.get('/wechat/config', {
url: encodeURIComponent(window.location.href),
}).then((data) => {
wx.config({
debug: false,
appId: data.appId,
timestamp: data.timestamp,
nonceStr: data.noncestr,
signature: data.signature,
jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'],
})
})
wx.ready(() => {
wx.updateAppMessageShareData(config)
wx.updateTimelineShareData(config)
})
},
},
}
main.ts
我用Vue.mixin()注册了全局mixin:
import globalMixins from './mixins/global.mixin'
Vue.mixin(globalMixins)
但是当我尝试从 Vue 组件中访问 mixin 方法时,我得到一个错误:
property wechatShare doesn't exist on type Test.vue
Test.vue
<script lang='ts'>
import { Component, Prop, Vue } from 'vue-property-decorator'
@Component({ components: { } })
export default class Test extends Vue {
created() {
this.setWeChatShare()
}
setWeChatShare() {
this.wechatShare
}
}
</script>
我该如何解决这个问题?
【问题讨论】:
标签: javascript typescript vue.js vuejs2