我无法从打字稿中的生命周期方法中引用Vue根组件中的方法。我已经能够通过下面的玩具示例重现此行为:
import Vue from "vue";
class Game {
a: number;
b: number;
constructor() {
this.a = 3;
this.b = 4;
}
}
new Vue({
el: "#calculator",
data: {
game: null
},
methods: {
// bound to a button
reset: function() {
this.game = new Game();
},
// bound to a button
add: function() {
this.game.a += 1;
}
},
beforeCreate() {
this.reset();
}
});
我收到以下打字稿编译错误:
src / test.ts:28:8-错误TS2339:属性“重置”不存在于 输入“ Vue”。
28 this.reset();
我的IDE告诉我,打字稿仅将data
中定义的属性解释为this
的一部分,而不解释methods
中定义的属性。其他人遇到了这个问题吗?如果是的话,您如何解决呢?
请注意,这将在javascript中正常工作
答案 0 :(得分:0)
考虑到已经过了几周,无论您是否已经自己解决了这个问题,
由于使用的是TypeScript,因此不需要在“ methods”对象中定义方法。您可以直接在类上定义它们。