Javascript 如何访问子类中getter的超类值?

Javascript 如何访问子类中getter的超类值?,javascript,inheritance,overriding,typescript,Javascript,Inheritance,Overriding,Typescript,在派生类中访问getter的super值似乎不起作用: class Foo { private _message:string = "Hello,"; public get Message():string { return this._message; } } class Bar extends Foo { public get Message():string { return super.Message + " World

在派生类中访问
getter
super
值似乎不起作用:

class Foo {
    private _message:string = "Hello,";

    public get Message():string {
        return this._message;
    }
}

class Bar extends Foo {
    public get Message():string {
        return super.Message + " World";
    }   
}

var snafu:Bar = new Bar();
document.write(snafu.Message);

// Expected: "Hello, World"
// Actual: "undefined World"

如何正确地重写
getter
并使用
super
值?

我不一定赞同您继续使用此方法,但是

class Bar extends Foo {
    public get Message():string {
        return Object.getOwnPropertyDescriptor(Foo.prototype, 'Message').get.apply(this) +  ' World';
    }   
}

原型继承并没有使这一点变得特别简单。

这只是TypeScript继承中的许多“陷阱”之一。TS看起来非常像C,以至于它会愚弄你,让你认为它的行为也像C。有关更多信息,请参阅:-(.谢谢。我有一个外部约束,它是以一个特定模型(层叠打印样式)的形式存在的,该模型大量使用重写属性-这种方法至少让我可以在TS中使用它。