TypeScript - Accessors (Penggunaan Aksesors)
Halo sana, para pemrogram yang sedang belajar! Hari ini, kita akan mendalamkan diskusi tentang dunia yang menarik dari TypeScript accessors. Jangan khawatir jika Anda baru dalam programming - saya akan memandu Anda melalui topik ini secara bertahap, seperti yang saya lakukan untuk ribuan murid selama tahun-tahun mengajar saya. Jadi, ambil secangkir minuman kesukaan Anda, dan mari kita mulai!
Apa Itu Accessors?
Sebelum kita masuk ke detil accessors TypeScript, mari kita mengerti apa itu accessors secara umum. Bayangkan Anda memiliki sebuah peti harta (itu adalah objek kita), dan Anda ingin mengendalikan bagaimana orang lain berinteraksi dengan harta di dalamnya (properti objek). Accessors adalah seperti kunci magis yang memungkinkan Anda mendapatkan atau mengatur harta tersebut secara terkontrol.
Dalam TypeScript, kita memiliki dua jenis accessors:
- Getters: Ini membantu kita mendapatkan nilai properti.
- Setters: Ini memungkinkan kita mengatur nilai properti.
Sekarang, mari kita jelajahi masing-masing dari ini.
Getters di TypeScript
Apa Itu Getter?
Sebuah getter adalah jenis method khusus yang memungkinkan Anda mengakses properti objek. Itu seperti memiliki seorang 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 kunciget
. - Ketika kita mengakses
person.name
, ia memanggil method getter kita.
Mengapa Menggunakan Getters?
- 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
- Lazy Loading: Getters dapat membantu meningkatkan kinerja 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 (tidak ada 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 logika tambahan.
Bagaimana Mendefinisikan Setter
Berikut 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 mengeluarkan kesalahan
Dalam contoh ini:
- Kita memiliki kelas
Temperature
dengan properti_celsius
yang pribadi. - Kita mendefinisikan setter untuk
celsius
yang memeriksa nilai valid sebelum mengaturnya.
Mengapa Menggunakan Setters?
-
Validasi Data: Setters dapat memastikan bahwa hanya nilai yang valid saja diberikan ke properti.
-
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 Aksesors
Berikut adalah ringkasan metode aksesors yang kita bahas:
Tipe Aksesors | 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 mengendalikan 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, programming adalah seperti belajar bahasa baru. Awalnya, itu mungkin tampak membingungkan, tetapi dengan kesabaran dan latihan, Anda akan segera "berbicara" TypeScript secara lancar. Selamat coding, dan jangan lupa bersenang-senang di jalannya!
Credits: Image by storyset