我正在尝试将仅使用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还是很陌生,因此在移植此应用程序的过程中,我可能缺少一些简单的东西。
答案 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(.......)
}
}