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!
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:
- Getters: Ini membantu kita mengambil nilai properti.
- 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 kunciget
. - Ketika kita mengakses
person.name
, itu 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 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?
-
Validasi Data: Setters dapat memastikan bahwa hanya nilai valid yang ditugaskan 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 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