我不确定如何提出这个问题。这个例子更容易理解。
tsc --version > 1.8.10
TLDR:我想知道这是否是我的设计错误
我有一个名为A
的超级原型,protected
成员a
。
我有两个名为B
和C
的构造函数,每个构造函数都来自A
(A
是他们的原型?)
在B
的实例中创建了C
的实例,我尝试访问新{{1}实例的公共受保护成员a
}}。在 Visual Studio代码中,该行会出现以下错误:
属性
B
受到保护,只能通过类a
的实例访问。
您可以在playground
中尝试以下代码C
我想知道这是否是我的设计错误。也许abstract class A {
protected a = 'a';
}
class B extends A {}
class C extends A {
c: B;
constructor() {
super();
this.c = new B();
}
get() {
return this.c.a;
}
}
实例不应该访问C
通常继承的受保护成员,即使生成的 js 转换应该在技术上完美运行,我知道{{1}的实例会有一个成员B
。
答案 0 :(得分:1)
只要您c:B
c
成员B
成员private
,protected
成员scalaz-stream
的任何访问权限都是fs2
的公共成员(即您无法访问pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'swift3'
或post_install
{1}}成员)。