TypeScript - Type Inference: A Beginner's Guide
Hai sana, bakal bintang pengkomputeran! Hari ini, kita akan melangkah ke dunia yang menarik TypeScript dan menjelajahi salah satu fitur yang paling menarik: Type Inference. Jangan khawatir jika Anda baru dalam programming; saya akan menjadi pandu Anda yang ramah, dan kita akan berjalan langkah demi langkah. Pada akhir panduan ini, Anda akan terpesona betapa cerdas TypeScript bisa menjadi!
Apa Itu Type Inference?
Sebelum kita masuk ke detil, mari kita mengerti apa arti type inference. Bayangkan Anda memiliki seorang teman ajaib yang bisa menebak apa yang Anda pikirkan hanya dengan melihat Anda. Itu seperti apa yang TypeScript lakukan dengan kode Anda. TypeScript melihat kode Anda dan mencoba untuk menentukan jenis apa yang seharusnya menjadi variabel Anda, tanpa Anda perlu memberitahukan secara eksplisit. Menarik, kan?
Sekarang, mari kita jelajahi berbagai cara TypeScript menggunakan kekuatan ajaib inferensinya!
Inisialisasi Variabel atau Anggota
Dasar-Dasar
Ketika Anda membuat variabel dan memberikan nilai segera, TypeScript bisa menentukan jenis apa yang seharusnya menjadi variabel itu. mari kita lihat beberapa contoh:
let myName = "Alice";
let myAge = 25;
let isStudent = true;
Dalam kode ini, TypeScript infer bahwa:
-
myName
adalahstring
-
myAge
adalahnumber
-
isStudent
adalahboolean
Anda tidak perlu menulis let myName: string = "Alice";
karena TypeScript cukup cerdas untuk menentukannya!
Contoh Lebih Kompleks
TypeScript juga bisa menangani jenis yang lebih kompleks:
let myFavoriteNumbers = [1, 2, 3, 4, 5];
let myPet = { name: "Fluffy", type: "Cat", age: 3 };
Di sini, TypeScript infer bahwa:
-
myFavoriteNumbers
adalah array dari bilangan (number[]
) -
myPet
adalah objek dengan properti tertentu (TypeScript membuat apa yang kita sebut "object literal type")
Parameter Default Fungsi
TypeScript juga bisa infer jenis dari parameter default dalam fungsi. mari kita lihat contoh:
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
Dalam fungsi ini, TypeScript infer bahwa name
adalah string
karena nilai defaultnya adalah string.
Anda bisa memanggil fungsi ini dengan berbagai cara:
greet(); // Output: Hello, Guest!
greet("Alice"); // Output: Hello, Alice!
Jenis Return Fungsi
TypeScript juga cukup cerdas untuk infer jenis return dari fungsi berdasarkan apa yang dikembalikan fungsi itu. mari kita lihat beberapa contoh:
function add(a: number, b: number) {
return a + b;
}
function isEven(num: number) {
return num % 2 === 0;
}
TypeScript infer bahwa:
-
add
mengembalikannumber
-
isEven
mengembalikanboolean
Anda tidak perlu menulis function add(a: number, b: number): number
karena TypeScript akan menentukannya!
Jenis Terbaik Umum: Jenis Union
kadang-kadang, TypeScript perlu infer jenis dari beberapa ekspresi. Dalam kasus ini, ia menggunakan algoritma yang kita sebut "Best Common Type". mari kita lihat contoh:
let mixedArray = [1, "two", 3, "four", 5];
Di sini, TypeScript infer bahwa mixedArray
adalah jenis (string | number)[]
. Ini berarti itu adalah array yang dapat mengandung baik string maupun bilangan.
Tipe Kontekstual
Tipe kontekstual adalah saat TypeScript menggunakan konteks kode Anda untuk infer jenis. Ini sangat berguna untuk callback dan parameter fungsi. mari kita lihat contoh:
let numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(num) {
console.log(num.toFixed(2));
});
Dalam contoh ini, TypeScript tahu bahwa forEach
pada array bilangan akan mengirim bilangan ke fungsi callback. Jadi ia infer bahwa num
adalah bilangan, sehingga Anda bisa menggunakan toFixed()
tanpa kesalahan.
Kesimpulan
Dan itu adalah, teman-teman! Kita telah berpergian melalui dunia ajaib inferensi tipe TypeScript. Dari penugasan variabel sederhana hingga pengembalian fungsi kompleks dan tipe kontekstual, TypeScript selalu bekerja keras untuk memahami kode Anda dan membuat hidup Anda mudah.
Ingat, inferensi tipe adalah seperti memiliki asisten cerdas yang membantu Anda menulis kode yang lebih bersih dan kurang kesalahan. Itu tidak sempurna, dan kadang-kadang Anda mungkin perlu memberikan bantuan dengan anotasi tipe eksplisit, tapi sebagian besar waktu, ia selalu mendukung Anda!
Tetap latih, tetap coding, dan segera Anda akan menjadi ahli TypeScript! Selamat coding, dan semoga jenis jenis selalu berada di pihak Anda!
Credits: Image by storyset