Computed Vue 属性 with Getter & Setter 不会在 Webpack 中编译

Computed Vue Property with Getter & Setter won't compile in Webpack

我正在尝试将开发中的应用程序仅 Javascript 转换为 Typescript。我 运行 遇到了一个似乎无法解决的问题。我有一个计算 属性 和一个 getter 和一个 setter ,当 运行 通过 Webpack 时不会编译。我没有使用 class 装饰器方式来声明组件,而是使用对象字面量语法。

import Vue from "vue"

export default Vue.extend({
  computed: {
   prioritized: {
    get(): any[] {
     return this.$store.getters["blah"];
    }
    set(value): void {
     //set value here
    }
   }
  }
})

下面是 webpack 给我的第一个错误:

错误在 ~listHome.ts(30,29) TS2339:属性 '$store' 在类型 '{ get(): any[]; 上不存在;设置(值:未知):无效; }'.

老实说,我是 Typescript 的新手,所以在移植这个应用程序时我可能会遗漏一些简单的东西。

哇,想通了。

我缺少 "value" 的类型声明,它破坏了一切。有趣

        get(): any[] {
            return this.$store.getters["homeList/sortedPriority"];
        },
        set(value:any): void {
            var test = 1;
        }

如果您正在使用 vue-property-decorator,您可以执行以下操作

import { Component, Vue } from "vue-property-decorator"

@Component
export default class GetterSetterTest extends Vue {
  get prioritized() {
    return this.$store.getters["blah"];
  }
  set prioritized(value: any) {
     // set the value something like below
     this.$store.commit(.......)
  }
}