TypeScript Modifiers
The TypeScript supports to multiple modifiers and it is by default public.
1. Public,
2. Private,
3. Protected and
4. Read-only
Public Modifier – Public by default! It is freely access anywhere.
In the below example, the class Employee and its members are by default public and we are freely access it.
Example –
class Employee { empName: string; constructor(name: string) { this.empName = name; } salary(salary: number = 10000) { console.log('Hello, ' + this.empName + ' Your Salary -' + salary); } } let empSal = new Employee("Anil"); console.log(empSal.salary()); console.log(empSal.salary(40000));
Private Modifier -When using private modifier, we can’t be accessed from outside of its containing class.
class Employee { private empName: string; constructor(name: string) { this.empName = name; } salary(salary: number = 10000) { console.log('Hello, ' + this.empName + ' Your Salary -' + salary); } } let emp = new Employee("Anil").empName; //error: property 'empName' is private and only accesible in the class 'Employee'.
Protected Modifier - The protected modifier is very similar to private but only one difference that can be accessed by instances of deriving classes.
Example as,
class Employee { protected empName: string; constructor(name: string) { this.empName = name; } salary(salary: number = 10000) { console.log('Hello, ' + this.empName + ' Your Salary -' + salary); } } class Employer extends Employee { private department: string; constructor(empName: string, department: string) { super(empName); this.department = department; } salary(salary = 20000) { super.salary(salary); } } let empSal = new Employer("Anil", "IT"); console.log(empSal.salary()); console.log(empSal.empName); //error- the property 'empName' is protected and only accesible within the class 'Employee' and its child class.
Readonly Modifier - Read-only properties must be initialized at their declaration or in the constructor.
For example as,
class Employee { readonly empName: string; constructor(name: string) { this.empName = name; } salary(salary: number = 10000) { console.log('Hello, ' + this.empName + ' Your Salary -' + salary); } } let emp = new Employee('Anil'); emp.empName = 'Anil Singh';//error - cannot assign to 'empName' because it is constant or readonly.
I hope you are enjoying with this post! Please share with you friends.
Thank you!!