Belajar Typescript #18 | Memahami dan menerapkan intersection types
Edo Kurniawan
24 Februari 2023
Intersection types adalah salah satu fitur kuat dalam TypeScript yang memungkinkan Anda menggabungkan beberapa tipe data menjadi satu tipe data baru. Ini memberikan fleksibilitas dalam mendefinisikan tipe data yang menggabungkan sifat-sifat dari tipe data yang berbeda. Artikel ini akan membahas apa itu intersection types, bagaimana cara menggunakannya, dan contoh penggunaan yang berguna.
Intersection types memungkinkan Anda untuk menggabungkan dua atau lebih tipe data menjadi satu tipe data gabungan. Tipe data ini dipisahkan oleh operator &
. Dengan intersection types, Anda memberikan informasi kepada TypeScript bahwa variabel tersebut memiliki semua sifat dari tipe-tipe yang Anda gabungkan.
Dalam TypeScript, Anda dapat menggunakan intersection types dengan cara yang sangat sederhana. Anda cukup mendefinisikan tipe data dengan menggunakan operator &
antara tipe-tipe yang ingin Anda gabungkan dalam intersection. Berikut adalah contoh sederhana penggunaan intersection types:
type Admin = {
name: string;
role: "admin";
};
type User = {
name: string;
role: "user";
};
type AdminUser = Admin & User;
const adminUser: AdminUser = {
name: "Alice",
role: "admin"
};
Pada contoh di atas, kita mendefinisikan dua tipe data, Admin
dan User
, yang masing-masing memiliki properti name
dan role
. Kemudian, kita mendefinisikan tipe data baru AdminUser
dengan operator &
, yang menggabungkan sifat-sifat dari kedua tipe data. Variabel adminUser
adalah tipe AdminUser
, yang harus memiliki semua properti dari tipe Admin
dan tipe User
.
Intersection types memberikan sejumlah keuntungan dalam pengembangan aplikasi TypeScript:
Gabungkan Tipe Data: Intersection types memungkinkan Anda untuk menggabungkan sifat-sifat dari berbagai tipe data menjadi satu tipe data. Ini berguna saat Anda ingin menyatukan berbagai aspek dari berbagai tipe data.
Kode yang Lebih Jelas: Dengan intersection types, Anda bisa lebih jelas dalam mendefinisikan tipe data yang harus memiliki beberapa sifat dari tipe data yang berbeda.
Fleksibilitas: Intersection types memberikan fleksibilitas dalam mendefinisikan tipe data yang memiliki kombinasi sifat-sifat yang berbeda.
Pencegahan Kesalahan: Intersection types membantu mencegah kesalahan saat penggunaan variabel yang tidak memiliki sifat-sifat yang diharapkan.
Selain contoh di atas, berikut adalah beberapa contoh penggunaan intersection types yang berguna:
type Logger = {
log: (message: string) => void;
};
type DataSource = {
fetch: () => Promise<any>;
};
type DataConnector = Logger & DataSource;
const dataConnection: DataConnector = {
log: (message) => console.log(message),
fetch: () => fetch("https://example.com/data")
};
Pada contoh ini, kita menggabungkan dua tipe data, Logger
dan DataSource
, untuk membuat DataConnector
yang memiliki sifat-sifat dari keduanya.
type User = {
name: string;
role: "user";
};
type Permission = {
canRead: boolean;
canWrite: boolean;
};
type UserWithPermissions = User & Permission;
const userWithPermissions: UserWithPermissions = {
name: "Alice",
role: "user",
canRead: true,
canWrite: false
};
Pada contoh ini, kita menggabungkan tipe data User
dan Permission
untuk membuat UserWithPermissions
yang memiliki sifat-sifat dari kedua tipe data.
Intersection types adalah fitur yang sangat berguna dalam TypeScript untuk menggabungkan sifat-sifat dari berbagai tipe data menjadi satu tipe data baru. Ini memberikan fleksibilitas, kejelasan, dan membantu mencegah kesalahan dalam kode Anda. Dengan pemahaman yang baik tentang intersection types, Anda dapat membuat kode yang lebih kuat dan mudah dipahami dalam pengembangan aplikasi TypeScript Anda.
Artikel Lainnya Dengan Kategori Terkait :
1. Belajar Typescript #01 | Memahami apa itu Typescript
2. Belajar Typescript #02 | Setup project Typescript
3. Belajar Typescript #03 | Konfigurasi compiler Typescript
4. Belajar Typescript #04 | Membuat code dan menjalankan Typescript
5. Belajar Typescript #05 | Basic types pada Typescript
6. Belajar Typescript #06 | Type data Boolean pada Typescript
7. Belajar Typescript #07 | Type data Number pada Typescript
8. Belajar Typescript #08 | Type data String pada Typescript
9. Belajar Typescript #09 | Type data Null dan Undefined pada Typescript
10. Belajar Typescript #10 | Type data Any pada Typescript
11. Belajar Typescript #11 | Type data Void pada Typescript
12. Belajar Typescript #12 | Object types pada Typescript
13. Belajar Typescript #13 | Object Literal pada Typescript
14. Belajar Typescript #14 | Type data Void pada Typescript
15. Belajar Typescript #15 Object types pada Typescript
16. Belajar Typescript #16 | Memahami dan menerapkan type aliases
17. Belajar Typescript #17 | Memahami dan menerapkan union types
18. Belajar Typescript #18 | Memahami dan menerapkan intersection types
19. Belajar Typescript #19 | Basic types lanjutan - Array
20. Belajar Typescript #20 | Basic types lanjutan - Tuples
21. Belajar Typescript #21 | Basic types lanjutan - Null
22. Belajar Typescript #22 | Basic types lanjutan - Undefined
23. Belajar Typescript #23 | Basic types lanjutan - Void
24. Belajar Typescript #24 | Basic types lanjutan - Never
25. Belajar Typescript #25 | Mengenal teknik lanjutan pada Typescript
26. Belajar Typescript #26 | Optional Parameter
27. Belajar Typescript #27 | Default Parameter
28. Belajar Typescript #28 | Return Type
29. Belajar Typescript #29 | Mendeklarasikan Fungsi - Tanpa Parameter
30. Belajar Typescript #30 | Mendeklarasikan Fungsi - Dengan Parameter
31. Belajar Typescript #31 | Mendeklarasikan Fungsi - Dengan Return Type
32. Belajar Typescript #32 | Mendeklarasikan Fungsi - Sebagai Variabel
33. Belajar Typescript #33 | Mendeklarasikan Fungsi - Sebagai Tipe Data
34. Belajar Typescript #34 | Function Call Signature
35. Belajar Typescript #35 | Menerapkan Types ke dalam class
36. Belajar Typescript #36 | Class declaration
37. Belajar Typescript #37 | Properties dan Methods
38. Belajar Typescript #38 | Object dan Properti dari sebuah class
39. Belajar Typescript #39 | Constructor
40. Belajar Typescript #40 | Konsep OOP - Inheritance
41. Belajar Typescript #41 | Konsep OOP - Abstraction
42. Belajar Typescript #42 | Konsep OOP - Encapsulation
43. Belajar Typescript #43 | Accessors
44. Belajar Typescript #44 | Member visibility / Access modifier
Ahmad Dika Zulfahmi - 18 Februari 2025
Jungler Tank Bisa Kembali? Update yang Bisa Membawa Jungler Tank ke Meta Lagi
Ahmad Dika Zulfahmi - 06 Februari 2025
Setting Sensitivitas Auto Headshot Free Fire Terbaik
Ahmad Dika Zulfahmi - 03 Februari 2025
Flash Sale Minaplay! Top Up Diamond Free Fire Murah & Cepat!