使用Getter&Setter计算的Vue属性不会在Webpack中编译

时间:2019-08-01 21:42:51

标签: typescript vue.js webpack computed-properties

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

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:类型'{get():any [];中不存在属性'$ store';设置(值:未知):无效; }'。

说实话,我对Typescript还是很陌生,因此在移植此应用程序的过程中,我可能缺少一些简单的东西。

2 个答案:

答案 0 :(得分:0)

哇,想通了。

我缺少“值”的类型声明,它破坏了所有内容。有趣

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

答案 1 :(得分:0)

如果您使用的是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(.......)
  }
}