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!

TypeScript - Type Inference

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 adalah string
  • myAge adalah number
  • isStudent adalah boolean

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 mengembalikan number
  • isEven mengembalikan boolean

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