【发布时间】:2015-12-11 18:25:55
【问题描述】:
TypeScript:view on playground
class A {
protected _name: string = ""
set name(name: string) {
this._name = name
}
get name() {
return this._name
}
}
class B extends A {
protected _name: string = ""
set name(name: string) {
this._name = name + "B"
}
}
在编译的 B 类中,这将覆盖 set AND get 的定义:
Object.defineProperty(B.prototype, "name", {
set: function (name) {
this._name = name + "B";
},
enumerable: true,
configurable: true
});
结果是,get name 不再适用于 B 类:
let b = new B()
b.name = "test"
console.log(b.name) // undefined
有没有办法从A类继承getter?
【问题讨论】:
-
不幸的是,您要覆盖的是
name,而不是特定的 getter/setter。你可以做get name(){ return super.name; }。在你的情况下就够了吗?
标签: javascript typescript ecmascript-6 getter-setter