Riotjs(Riot 打字稿)无法覆盖打字稿上的方法 class
Riotjs (Riot typescript) can't overwrite method on typescript class
这很奇怪。我做错了什么?
class Store extends Riot.Observable {
trigger():void {
// shouldn't this be completely overwriting the trigger method on riot.observable?
console.log("my trigger....");
}
}
let store = new Store();
store.trigger();
预期行为:"my trigger...." 在控制台中。我得到的是 Riot.Observable 上触发器的原始实现,由于没有传递参数而出错。
如果我戳 store
对象,我可以在 store.__proto__
上看到,在我的实现中确实有触发器。但是 store
自己有自己的 trigger()
的(原始)副本
请看https://jsfiddle.net/sidouglas/5spbvpnn/
我引用了this with a very basic example,我不知道发生了什么。
基于 source,riot observables 不利用原型继承。它们作为 mixin 而工作。 typescript 包装器 class 只是调用原始的 riot mixin。要覆盖函数,您必须将其分配给实例:
class Store extends Riot.Observable {
constructor() {
this.trigger = function() {
console.log("My trigger");
};
}
}
let store = new Store();
store.trigger();
这很奇怪。我做错了什么?
class Store extends Riot.Observable {
trigger():void {
// shouldn't this be completely overwriting the trigger method on riot.observable?
console.log("my trigger....");
}
}
let store = new Store();
store.trigger();
预期行为:"my trigger...." 在控制台中。我得到的是 Riot.Observable 上触发器的原始实现,由于没有传递参数而出错。
如果我戳 store
对象,我可以在 store.__proto__
上看到,在我的实现中确实有触发器。但是 store
自己有自己的 trigger()
请看https://jsfiddle.net/sidouglas/5spbvpnn/
我引用了this with a very basic example,我不知道发生了什么。
基于 source,riot observables 不利用原型继承。它们作为 mixin 而工作。 typescript 包装器 class 只是调用原始的 riot mixin。要覆盖函数,您必须将其分配给实例:
class Store extends Riot.Observable {
constructor() {
this.trigger = function() {
console.log("My trigger");
};
}
}
let store = new Store();
store.trigger();