Typescript 无法访问父类属性

Typescript 无法访问父类属性,typescript,Typescript,请参见下面的TypeScript代码: class x { a = 20; f1(){ console.log("parent > " + this.a); } } class y extends x { a = 10; f1(x?:number){ console.log("chold > " + this.a); super.f1(); } } let z = new y(); z.f1(); 当我在Chrome中运行下面编译的

请参见下面的TypeScript代码:

class x {
  a = 20;
  f1(){
    console.log("parent > " + this.a);
  }
}
class y extends x {
  a = 10;
  f1(x?:number){
     console.log("chold > " + this.a);
    super.f1();
  }
}
let z = new y();
z.f1();
当我在Chrome中运行下面编译的代码时,我得到child=10和parent=10

从父类访问父类属性的正确方法是什么?
似乎不起作用

从父类访问父类属性的正确方法是什么,因为此不起作用

指向当前实例<代码>此。a将指向父级和类中的相同值。本质上,
a
被覆盖,当父对象访问
this.a
时,它访问子属性

更多
  • 即使在重写之后,也可以通过
    super
    访问父方法
  • 父属性将被永久覆盖
文件

从父类访问父类属性的正确方法是什么,因为此不起作用

指向当前实例<代码>此。a将指向父级和类中的相同值。本质上,
a
被覆盖,当父对象访问
this.a
时,它访问子属性

更多
  • 即使在重写之后,也可以通过
    super
    访问父方法
  • 父属性将被永久覆盖
文件

代码工作正常。您只是覆盖了member
a
的值。无法获得在
x
中设置的值。因此,我必须首先研究基类并相应地设计我的子类,因为如果我在子类中使用相同的名称指定一个数据成员,可能会中断基类功能?我不知道您在尝试做什么。但是,如果您将
a
声明为private,那么如果您试图重新声明它,编译器会抱怨代码工作得很好。您只是覆盖了member
a
的值。无法获得在
x
中设置的值。因此,我必须首先研究基类并相应地设计我的子类,因为如果我在子类中使用相同的名称指定一个数据成员,可能会中断基类功能?我不知道您在尝试做什么。但是如果您将
a
声明为private,那么如果您试图重新声明它,编译器会抱怨