一尘不染

为什么我不能访问TypeScript私有成员?

javascript

我正在研究TypeScript中私有成员的实现,但我感到有些困惑。Intellisense不允许访问私有成员,但是在纯JavaScript中,仅此而已。这使我认为TS无法正确实现私有成员。有什么想法吗?

class Test{
  private member: any = "private member";
}
alert(new Test().member);

阅读 358

收藏
2020-05-01

共1个答案

一尘不染

就像类型检查一样,成员的隐私仅在编译器中强制执行。

私有属性被实现为常规属性,并且不允许类外的代码对其进行访问。

为了使某些东西真正成为类的私有对象,它不能成为该类的成员,而应是在创建对象的代码内的函数作用域内创建的局部变量。这意味着您不能像类的成员那样访问它,即使用this关键字。

2020-05-01