Typescript 从具有相同超级原型的对象访问受保护的成员表示错误

Typescript 从具有相同超级原型的对象访问受保护的成员表示错误,typescript,visual-studio-code,typescript1.8,Typescript,Visual Studio Code,Typescript1.8,我不知道该怎么问这个问题。这个例子更容易理解 tsc--version>1.8.10 TLDR:我想知道这是否是我的设计错误 我有一个名为a的超级原型,有一个受保护的成员a。 我有两个构造函数,分别称为B和C,每个构造函数都是从A扩展而来的(A是它们的原型吗?) 在C的实例中创建B的实例,我尝试访问B新实例的公共受保护成员a。在Visual Studio代码中,该行出现以下错误: 属性a受保护,只能通过类C的实例访问 您可以在中尝试以下代码 抽象类A{ 受保护a='a'; } 类B扩展了{} C

我不知道该怎么问这个问题。这个例子更容易理解

tsc--version>1.8.10

TLDR:我想知道这是否是我的设计错误

我有一个名为
a
的超级原型,有一个
受保护的
成员
a
。 我有两个构造函数,分别称为
B
C
,每个构造函数都是从
A
扩展而来的(
A
是它们的原型吗?)

C
的实例中创建
B
的实例,我尝试访问
B
新实例的公共受保护成员
a
。在Visual Studio代码中,该行出现以下错误:

属性
a
受保护,只能通过类
C
的实例访问

您可以在中尝试以下代码

抽象类A{
受保护a='a';
}
类B扩展了{}
C类扩展了{
c:B;
构造函数(){
超级();
这个.c=新的B();
}
得到(){
把这个还给c.a;
}
}

我想知道这是否是我的设计错误。可能
C
实例不应该访问
B
通常继承的受保护成员,即使由此产生的js传输在技术上应该运行得很好,我确信,
B
的实例将有一个成员
a

只要你说
c:B
就可以访问
c
的任何成员,只要他们是
B
的公共成员(即你不能访问
私人
受保护的
成员)

我正在尝试做类似的事情,我相信在
类C
的方法中为
this.a
赋值时会出现错误。在我的例子中,当我试图在我的超类中设置一个受保护对象的值时,我得到了未定义的
。。。(有趣的是,它编译时没有错误——IDEA 2016.2)