我执行了一个简单的TypeScript documentation about classes示例,上面写着:
受保护的修饰符的行为与带有 声明为受保护的成员也可以在以下位置访问的例外 派生类...请注意,尽管我们不能使用外部名称 of Person,我们仍然可以在以下实例方法中使用它 员工,因为员工来自人。
当我在stackblitz中执行它时,编辑器会正确抱怨。
但是,第二个console.log从类或它的子类外部访问name属性,但在控制台中没有任何错误地输出名称。
它不会抛出错误吗?我想念什么?
答案 0 :(得分:1)
私有/受保护成员的当前实现仅是编译时检查的约束。您可以在运行时轻松解决它。当针对私有字段的ecma脚本建议被接受时,我们将获得真正的私有文件,直到这是我们拥有的最好的私有文件为止。