2016-10-07 66 views
1

Typescript中公共类访问修饰符的用途是什么?Typescript中公共类访问修饰符的用途是什么?

是什么

export class Thing { 

    public doStuff(){} 

} 

export class Thing { 

    doStuff(){} 

} 

看来,标准TSC JS输出是完全一样的区别...

+0

如果您未指定访问修饰符,则默认为公共。编译后的外观是无关紧要的。你应该知道使用private或protected也会产生完全相同的JavaScript。 – Hampus

回答

0

您的示例代码在TypeScript中的含义完全相同。如果您未在成员定义中加入修饰符publicprivateprotected,则TypeScript将选择默认的public

这对Javascript没有意义,因为TypeScript编译器会生成完全相同的代码。但是,这些修改器会帮你封装类成员,并让他们:

  • 访问外部类:public
  • 只仅在类访问:private在类
  • 访问和派生类:protected

再次生成的JavaScript不包含修饰符。这意味着,如果有人获得您的Javascript代码,即使您将其定义为private,它也将访问成员。修饰符仅在TypeScript中有用,并帮助开发人员不访问某些类成员。

+0

显式指定** public **修饰符是否很好? –

0

它只是设定一个明确的方式该方法是public。默认情况下,TypeScript中的所有类方法/属性都是public类型的,但为了清晰起见,您还可以在代码中注明这一点。

您可以在Handbook阅读更多关于它,这里是摘录:

公共默认

在我们的例子中,我们已经能够自由地访问我们整个声明的成员我们的计划。如果您熟悉其他语言的课程,您可能在上面的例子中已经注意到我们不必使用public这个词来实现这一点;例如,C#要求将每个成员明确标记为公开以便可见。在TypeScript中,每个成员默认都是公共的。

您仍可以明确地标记成员公众。

相关问题