Public
Public class members are visible from within and outside the class
Private
Private are visible from within the class only
Protected
Protected are visible form the class and its descendents
However, for private
keyword, it's actually not really as what it means.
for example of class Text
in Typescript
:
class Test {public name: string;private age: number;protected ssn: string;constructor(name: string, age: number, ssn: string) {this.name = name;this.age = age;this.ssn = ssn;}}
After convert it into Javascript
:
var Test = /** @class */ (function () {function Test(name, age, ssn) {this.name = name;this.age = age;this.ssn = ssn;}return Test;}());
For translated Javascript
file, it cannot prevent variable accessed from outside. (public
variable name
is declared same as private
variable ssn
)
In order to set ssn
into private
, it should be something like:
var Test = (function() {var _ssn;function Test(name, age, ssn) {this.name = name;this.age = age;_ssn = ssn;}return Test;}());
So when use the private
keyword in TypeScript
, keep in mind that it just suggests it's nice and not access it directly, but actually generates public getter and setter methods instead.
沒有留言:
張貼留言