网站搜索

vue.js - 使用 Vue 和 TypeScript 扩展多个混入


我有以下简单的例子

const mixin1 = Vue.extend({
  computed: {
    mixin1_prop():number {
      return 10;
    },
  },
});

const mixin2 = Vue.extend({
  computed: {
    mixin2_prop():number {
      return 20;
    },
  },
});

// Now in component I want to extend both mixin1 and mixin2

mixin1.extend(mixin2).extend({
  created() {
    console.log(this.mixin1_prop);
    console.log(this.mixin2_prop);
  },
});

TypeScript 编译器对 mixin2_prop 提出警告,错误 属性 'mixin2_prop' 在类型 'CombinedVueInstance<Re' 上不存在

即使当示例在运行时运行时,一切按预期工作,数字10和数字20都被打印到控制台。

有人知道如何欺骗 TS 编译器,让它在组件代码中识别两个混入吗?