是否有计划将Protected修饰符添加到打字稿? 如果没有Protected,在没有将var / function暴露给外部类的情况下,继承无法正常工作。
答案 0 :(得分:2)
protected
支持您可以遵循的具体请求是here。
正如你所看到的,它获得了很多选票。但是,TypeScript遵循ECMAScript的新提案/版本的设计,而不是在大多数情况下自己创新。由于protected
是ECMAScript / JavaScript支持的一种方式,我不希望它很快就会出现。许多开发人员已经建立了编码约定,并使用public
来处理protected
可能更有意义的情况。
答案 1 :(得分:0)
此处有一项功能请求:http://typescript.codeplex.com/workitem/1413
所以,如果你投票,它可能有帮助:) 所以我认为它目前不在路线图上,而只是一个建议。
答案 2 :(得分:0)
TypeScript版本1.3可用,并包含protected
关键字。
View the release notes for the protected keyword
class A {
protected x: string = 'a';
}
class B extends A {
method() {
return this.x;
}
}
var b = new B();
// Not allowed by compiler
console.log(b.x);
// Allowed
console.log(b.method());
请记住,如果您忽略此示例中为b.x
显示的编译器警告,则编译的代码确实会记录受保护成员的值。这是因为它是一个编译时构造而不是运行时构造(即没有什么可以阻止您在运行时访问private
或protected
成员。