在vuejs和Typescript中使用mixins

时间:2019-02-26 11:42:00

标签: typescript vue.js

我想通过打字稿使用全局mixin。我的mixin看起来像这样:

Vue.mixin({
  data() {
    return {
      myValue: false
    };
  },
  methods: {
    toggle() {
      this.myValue= !this.myValue;
    }
  }
});

这给了我以下错误:TS2339: Property 'myValue' does not exist on type 'Vue'.

如果我在组件Vue.extend({... same code... })中使用相同的代码,则一切正常。

1 个答案:

答案 0 :(得分:0)

您可以像这样指定自定义类型:

// src/vue-shim.d.ts
import Vue from 'vue'

declare module 'vue/types/vue' {
  interface Vue {
    myValue: boolean;
  }
}

查看文档了解更多详情https://vuejs.org/v2/guide/typescript.html#Augmenting-Types-for-Use-with-Plugins