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