public
the default keyword. members with this keyword is accessible/mutable from anywhere
private
not accessible from outside the class. if you want to update private properties, you need to defined methods inside class that you can call to update it.
class Example {
private prop;
changeProp(prop){
this.prop=prop
}
}
let ex = new Example()
ex.prop = 1; // error
ex.changeProp(1) // ok
protected
like private, but can be accessed from its derived classes
readonly
speaks for itself. accessible, but immutable. Not sure if it cane be changed using class methods
static
methods or properties that can be accessed w/o instantiating an instance of class