TypeScript Access Modifires
In object oriented programming, there are three types of access modifier is used, called public, private
and protected
. Access modifier gives you a great flexibility to mark class members as public, private and protected.
In TypeScript, each member is public by default.
TypeScript Public Modifier
When a member is marked as public explicitly, it can access from outside of its containing class. For Example:
TypeScript Public Modifier Example
class Customer{
public fname: string;
public lname: string;
public address: string;
public phone: string;
public constructor(fname: string, lname: string, address: string, phone: string) {
this.fname = fname;
this.lname = lname;
this.address = address;
this.phone = phone;
}
public printCustomer() {
return "Hello, " + this.fname + " " + this.lname;
}
}
let cust = new Customer("Jimi","Scott","12-13/A12","3222223433");
cust.printCustomer();
cust.fname; //Accessible
Try it Yourself
TypeScript Private Modifier
When a member is marked private, it cannot be accessed from outside of its containing class. For example:
TypeScript Private Modifier Example
class Customer{
private fname: string;
private lname: string;
private address: string;
private phone: string;
public constructor(fname: string, lname: string, address: string, phone: string) {
this.fname = fname;
this.lname = lname;
this.address = address;
this.phone = phone;
}
public printCustomer() {
return "Hello, " + this.fname + " " + this.lname;
}
}
let cust = new Customer("Jimi","Scott","12-13/A12","3222223433");
cust.printCustomer();
cust.fname; //Not Accessible
cust.lname; //Not Accessible
Try it Yourself
Protected Private Modifier
When a member is marked protected, it cannot be accessed outside of its containing class but exception that members declared protected can also be accessed by instances of deriving classes.
TypeScript Protected Modifier Example
class classA {
protected name: string;
protected address: string;
public phone: string;
public constructor(name: string, address: string, phone: string)
{
this.name = name;
this.address = address;
this.phone = phone;
}
public print() {
return this.name + " " + this.address + " " + this.phone;
}
}
class classB extends classA {
constructor(name: string, address: string, phone: string)
{ super(name, address, phone); }
}
let b = new classB("Jimi Scott","12-13/A12", "8637832178");
b.print();
b.name // Not Accessible
b.address // Not Accessible
b.phone // Accessible
Try it Yourself