打字稿:使用private,public和nothing声明类变量之间的区别

时间:2016-08-05 21:38:16

标签: typescript

有什么区别:

A.
class foo {
  bar: string;
}

B.
class foo {
  private bar: string;
}

C.
class foo {
  public bar: string;
}

显然我可以使用以下方法在所有三种情况下访问“bar”:

var temp = new foo();
temp.bar = 'abc';

1 个答案:

答案 0 :(得分:5)

bar: string 100%相当于public bar: string。默认辅助功能修饰符为public

private仅限编译时隐私;没有运行时强制执行此操作,无论访问修饰符如何,发出的代码都是相同的。尝试从类外部访问该属性时,您会看到TypeScript中的错误。

您也可以说protected,类似于private,但派生类也可以访问该成员。同样,这里发出的JavaScript没有区别。