TypeScript Access Modifiers

Access modifier pada class di TypeScript digunakan untuk mengatur level akses atau visibilitas properti atau method dalam class. Access modifier dapat ditempatkan sebelum properti atau method dalam class dan terdapat tiga jenis access modifier yaitu:

Public (default)

Properti atau method dapat diakses dari dalam class, subclass, dan instance objek.

class Animal {
    name:string;
    foot:number;

    constructor(name: string,foot:number){
        this.name = name;
        this.foot = foot;
    }

    printAnimal(){
        console.log(`Animal name ${this.name} number of animal legs ${this.foot}`)
    }
}

Private

Properti atau method hanya dapat diakses dari dalam class, tidak dapat diakses dari subclass atau instance objek.

class Car{
    private color:string;
    private type:string;

    constructor(color: string,type: string){
        this.color =color;
        this.type = type;
    }

    getColor():string{
        return this.color;
    }

    getType():string{
        return this.type;
    }

}

let bus = new Car("Red","Bus")
console.log(`Color ${bus.getColor()} and Type ${bus.getType()}`)

Protected

Properti atau method dapat diakses dari dalam class dan subclass, tetapi tidak dapat diakses dari instance objek.

class Person {
    protected firstName: string
    protected lastName: string
    private age :number;

    constructor(firstName: string, lastName: string,age :number) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }

    getPerson(): string {
        return `${this.firstName} ${this.lastName} ${this.age}`;
    }

}


let person1 = new Person("Jhon","Due",30);

console.log(`Perosn is ${person1.getPerson()}`);

Readonly

TypeScript menyediakan methode atau keyword readonly dimana ini bisa digunakan untuk membuat suatu properti/class menjadi immutable (tidak bisa diubah) atau dibuat instance pada class, untuk membuat properti/class menjadi immutable kita bisa mengunakan keyword readonly seperti contoh berikut :

class Person {
    readonly birthDate: Date;

    constructor(birthDate: Date) {
        this.birthDate = birthDate;
    }
}

Source code tutorial Typescript tersedia di github typescript-days

hyvercode

Leave a Reply

Your email address will not be published. Required fields are marked *