TypeScript - Aksesstor

Hai sana, para pemrogram yang sedang mencari ilmu! Hari ini, kita akan membanjiri ke dalam dunia yang menarik dari TypeScript accessors. Jangan khawatir jika Anda baru dalam pemrograman - saya akan mengarahkan Anda melalui topik ini langkah demi langkah, seperti yang saya lakukan untuk ribuan murid selama tahun-tahun mengajar saya. Jadi, ambil secangkir minuman kesukaan Anda, dan mari kita mulai!

TypeScript - Accessors

Apa Itu Accessors?

Sebelum kita melompat ke rincian accessors TypeScript, mari kita mengerti apa itu accessors secara umum. Bayangkan Anda memiliki sebuah peti harta (itu adalah objek kita), dan Anda ingin mengontrol bagaimana orang lain berinteraksi dengan harta di dalamnya (properti objek). Accessors adalah seperti kunci magis yang memungkinkan Anda mendapatkan atau mengatur harta ini dalam cara yang terkontrol.

Dalam TypeScript, kita memiliki dua jenis accessors:

  1. Getters: Ini membantu kita mengambil nilai properti.
  2. Setters: Ini memungkinkan kita mengatur nilai properti.

Sekarang, mari kita jelajahi masing-masing dari ini secara rinci.

Getters di TypeScript

Apa Itu Getter?

Sebuah getter adalah jenis method khusus yang memungkinkan Anda mengakses properti objek. Itu seperti memiliki asisten pribadi yang mengambil informasi bagi Anda.

Bagaimana Mendefinisikan Getter

Mari kita lihat contoh sederhana:

class Person {
private _name: string;

constructor(name: string) {
this._name = name;
}

get name(): string {
console.log("Mengambil nama");
return this._name;
}
}

let person = new Person("Alice");
console.log(person.name); // Output: Mengambil nama \n Alice

Dalam contoh ini:

  • Kita memiliki kelas Person dengan properti pribadi _name.
  • Kita mendefinisikan getter bernama name menggunakan kata kunci get.
  • Ketika kita mengakses person.name, itu memanggil method getter kita.

Mengapa Menggunakan Getters?

  1. Properti Terhitung: Getters dapat mengembalikan nilai yang dihitung.
class Circle {
private _radius: number;

constructor(radius: number) {
this._radius = radius;
}

get area(): number {
return Math.PI * this._radius ** 2;
}
}

let circle = new Circle(5);
console.log(circle.area); // Output: 78.53981633974483
  1. Lazy Loading: Getters dapat membantu meningkatkan performa dengan memuat data hanya saat diperlukan.
class DataFetcher {
private _data: string | null = null;

get data(): string {
if (this._data === null) {
console.log("Mengambil data...");
this._data = "Data yang mahal";
}
return this._data;
}
}

let fetcher = new DataFetcher();
console.log(fetcher.data); // Output: Mengambil data... \n Data yang mahal
console.log(fetcher.data); // Output: Data yang mahal (tanpa pengambilan data kali ini)

Setters di TypeScript

Apa Itu Setter?

Sebuah setter adalah seperti lawan dari getter. Itu adalah method yang mengatur nilai properti, biasanya dengan beberapa logika tambahan.

Bagaimana Mendefinisikan Setter

Ini adalah contoh dasar:

class Temperature {
private _celsius: number = 0;

set celsius(value: number) {
if (value < -273.15) {
throw new Error("Suhu di bawah nol mutlak tidak mungkin");
}
this._celsius = value;
}

get celsius(): number {
return this._celsius;
}
}

let temp = new Temperature();
temp.celsius = 25; // Ini memanggil setter
console.log(temp.celsius); // Output: 25

// temp.celsius = -300; // Ini akan melewati kesalahan

Dalam contoh ini:

  • Kita memiliki kelas Temperature dengan properti pribadi _celsius.
  • Kita mendefinisikan setter untuk celsius yang memeriksa apakah nilai valid sebelum mengaturnya.

Mengapa Menggunakan Setters?

  1. Validasi Data: Setters dapat memastikan bahwa hanya nilai valid yang ditugaskan ke properti.

  2. Efek Samping: Setters dapat memicu tindakan lain saat properti diubah.

class User {
private _name: string = "";
private _lastUpdated: Date = new Date();

set name(value: string) {
this._name = value;
this._lastUpdated = new Date();
}

get name(): string {
return this._name;
}

get lastUpdated(): Date {
return this._lastUpdated;
}
}

let user = new User();
user.name = "Bob";
console.log(user.name); // Output: Bob
console.log(user.lastUpdated); // Output: Tanggal dan waktu saat ini

Tabel Metode Accessor

Ini adalah ringkasan metode accessor yang kita bahas:

Tipe Accessor Kata Kunci Tujuan Contoh
Getter get Mengambil nilai properti get name(): string { return this._name; }
Setter set Mengatur nilai properti set name(value: string) { this._name = value; }

Kesimpulan

Accessors di TypeScript menyediakan cara yang kuat untuk mengontrol bagaimana properti objek diakses dan diubah. Mereka memungkinkan Anda menambahkan logika, validasi, dan properti terhitung ke kelas Anda, membuat kode Anda lebih kuat dan mudah dipelihara.

Ingat, seperti belajar keterampilan baru, menguasai accessors memerlukan latihan. Jangan frustasi jika itu tidak langsung berjalan - terus coding, terus mencoba, dan segera Anda akan menggunakan getters dan setters seperti seorang ahli!

Seperti yang saya selalu katakan kepada murid-muridku, pemrograman adalah seperti belajar bahasa baru. Pada awalnya, itu mungkin tampak membingungkan, tapi dengan kesabaran dan latihan, Anda akan segera "berbicara" TypeScript dengan lancar. Selamat coding, dan jangan lupa untuk bersenang-senang di jalannya!

Credits: Image by storyset