Classes di TypeScript — TypeScript

TypeScript menambahkan fitur penting di atas class JavaScript: access modifiers dan abstract classes. Access Modifiers: class User { public nama: string // bisa

TypeScript menambahkan fitur penting di atas class JavaScript: access modifiers dan abstract classes.

Access Modifiers:

class User {
  public nama: string       // bisa diakses dari mana saja (default)
  private password: string   // hanya bisa diakses di dalam class ini
  protected email: string    // bisa diakses di class ini dan turunannya
}

Parameter Properties — shorthand untuk deklarasi + assignment:

// Sebelum:
class User {
  nama: string
  constructor(nama: string) { this.nama = nama }
}
// Sesudah:
class User {
  constructor(public nama: string) {} // otomatis jadi property!
}

Abstract Classes — class yang tidak bisa di-instantiate, hanya bisa di-extend:

abstract class Shape {
  abstract area(): number     // HARUS diimplementasi oleh subclass
  describe(): string {        // boleh punya implementasi
    return `Luas: ${this.area()}`
  }
}

class Circle extends Shape {
  constructor(private radius: number) { super() }
  area(): number { return Math.PI * this.radius ** 2 }
}

Implements — class yang harus memenuhi kontrak interface:

interface Printable {
  print(): string
}
class Report implements Printable {
  print(): string { return "Laporan" }
}

readonly — property yang hanya bisa di-set di constructor:

class Config {
  constructor(readonly apiUrl: string) {}
}

Yang akan kamu pelajari