TypeScript - Fungsi: Panduan untuk Pemula

Hai, para pemrogram yang sedang mencari ilmu! Hari ini, kita akan memulai perjalanan yang menarik ke dunia fungsi TypeScript. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan ramah Anda, dan kita akan mengambil langkah ini satu per satu. Pada akhir tutorial ini, Anda akan terkejut dengan apa yang Anda bisa lakukan dengan fungsi di TypeScript!

TypeScript - Functions

Apa Itu Fungsi?

Sebelum kita masuk ke hal yang rinci, mari kita mengerti apa itu fungsi. Pensejukkan pikiran Anda tentang fungsi sebagai resep yang dapat digunakan berkali-kali. Seperti Anda mengikuti resep untuk membuat kue, fungsi adalah sekumpulan intruksi yang melakukan tugas tertentu dalam program Anda.

Ini adalah contoh fungsi sederhana di TypeScript:

function greet(name: string): string {
return `Hello, ${name}!`;
}

console.log(greet("Alice")); // Output: Hello, Alice!

Dalam contoh ini, greet adalah fungsi kami. Itu mengambil name sebagai masukan dan mengembalikan pesan salam. Tanda : string setelah parameter dan setelah tanda kurung menunjukkan bahwa fungsi ini mengambil string sebagai masukan dan mengembalikan string.

Parameter Opsional

kadang-kadang, Anda mungkin ingin membuat parameter opsional. Di TypeScript, Anda dapat melakukan ini dengan menambahkan ? setelah nama parameter.

function introduce(name: string, age?: number): string {
if (age) {
return `Hi, I'm ${name} and I'm ${age} years old.`;
} else {
return `Hi, I'm ${name}.`;
}
}

console.log(introduce("Bob")); // Output: Hi, I'm Bob.
console.log(introduce("Charlie", 30)); // Output: Hi, I'm Charlie and I'm 30 years old.

Dalam fungsi ini, age adalah opsional. Jika itu disediakan, kita menyertakan itu dalam pengenalan; jika tidak, kita melewatkan itu.

Parameter Sisa

Parameter sisa memungkinkan Anda untuk bekerja dengan beberapa parameter sebagai array. Itu seperti mengatakan, "Saya tidak tahu berapa banyak bahan Anda akan memberikan, tapi saya akan menggunakannya semua dalam resep saya!"

function makeShake(...fruits: string[]): string {
return `I made a shake with ${fruits.join(", ")}.`;
}

console.log(makeShake("banana")); // Output: I made a shake with banana.
console.log(makeShake("strawberry", "mango", "kiwi")); // Output: I made a shake with strawberry, mango, kiwi.

Sintaks ...fruits memberitahu TypeScript untuk mengambil semua argumen yang diberikan dan memasukkannya ke dalam array yang disebut fruits.

Parameter Default

Parameter default adalah seperti memiliki rencana cadangan. Jika seseorang tidak menyediakan nilai, kita akan menggunakan nilai default.

function orderCoffee(size: string = "medium", type: string = "latte"): string {
return `You ordered a ${size} ${type}.`;
}

console.log(orderCoffee()); // Output: You ordered a medium latte.
console.log(orderCoffee("large")); // Output: You ordered a large latte.
console.log(orderCoffee("small", "espresso")); // Output: You ordered a small espresso.

Jika Anda tidak menentukan ukuran atau jenis, itu default ke medium latte. Sangat mudah!

Fungsi Anonim

Fungsi anonim adalah seperti agen rahasia - mereka tidak memiliki nama! Mereka sering digunakan saat Anda memerlukan fungsi cepat yang Anda hanya akan gunakan sekali.

let greet = function(name: string): string {
return `Hello, ${name}!`;
};

console.log(greet("David")); // Output: Hello, David!

Di sini, kita menugaskan fungsi anonim ke variabel greet. Kita kemudian dapat menggunakan greet seperti fungsi biasa.

Konstruktor Fungsi

Konstruktor Fungsi adalah cara untuk membuat fungsi secara dinamis. Itu seperti membuat robot yang dapat melakukan tugas berdasarkan intruksi yang Anda berikan.

let multiply = new Function('a', 'b', 'return a * b');

console.log(multiply(4, 5)); // Output: 20

Dalam contoh ini, kita membuat fungsi yang mengalikan dua angka. Argumen terakhir selalu adalah tubuh fungsi, dan sisanya adalah nama parameter.

Rekursi dan Fungsi TypeScript

Rekursi adalah saat fungsi memanggil dirinya sendiri. Itu seperti boneka Rusia - setiap boneka berisi versi yang lebih kecil dari dirinya sendiri.

function countdown(n: number): void {
if (n <= 0) {
console.log("Blast off!");
} else {
console.log(n);
countdown(n - 1);
}
}

countdown(3);
// Output:
// 3
// 2
// 1
// Blast off!

Fungsi ini menghitung mundur dari angka yang diberikan ke nol. Itu terus memanggil dirinya sendiri dengan angka yang lebih kecil hingga mencapai nol.

Fungsi Lambda

Fungsi Lambda, juga dikenal sebagai fungsi panah, adalah cara pendek menulis fungsi. Itu seperti singkatan teks untuk fungsi!

let add = (a: number, b: number): number => a + b;

console.log(add(3, 4)); // Output: 7

Sintaks ini sangat berguna untuk fungsi pendek dan sederhana.

Variasi Sintaks

TypeScript menawarkan berbagai cara untuk mendefinisikan fungsi. Berikut adalah tabel yang menggabungkan sintaks yang berbeda:

Sintaks Contoh
Deklarasi Fungsi function greet(name: string): string { returnHello, ${name}!; }
Ekspresi Fungsi let greet = function(name: string): string { returnHello, ${name}!; };
Fungsi Panah let greet = (name: string): string =>Hello, ${name}!;
Metode dalam Objek let obj = { greet(name: string): string { returnHello, ${name}!; } };
Fungsi Asinkron async function fetchData(): Promise<void> { /* ... */ }

Overload Fungsi

Overload fungsi memungkinkan Anda mendefinisikan beberapa tanda tangan fungsi untuk fungsi yang sama. Itu seperti memiliki beberapa resep untuk makanan yang sama, tergantung pada bahan apa yang Anda punyai.

function makeNoise(animal: "cat"): string;
function makeNoise(animal: "dog"): string;
function makeNoise(animal: string): string {
switch(animal) {
case "cat":
return "Meow";
case "dog":
return "Woof";
default:
return "Unknown animal";
}
}

console.log(makeNoise("cat")); // Output: Meow
console.log(makeNoise("dog")); // Output: Woof

Fungsi ini dapat menangani berbagai jenis hewan dan membuat suara yang sesuai.

Dan itu adalah yang Anda butuhkan! Kita telah menelusuri banyak hal hari ini, mulai dari fungsi dasar hingga konsep yang lebih tingkat tinggi seperti rekursi dan overload fungsi. Ingat, belajar mengkode adalah seperti belajar bahasa baru - itu memerlukan latihan dan kesabaran. Jangan khawatir untuk mencoba konsep ini dan membuat fungsi Anda sendiri. Sebelum Anda mengetahui, Anda akan menulis program yang kompleks dengan mudah. Selamat berkoding, dan lihat Anda di les berikutnya!

Credits: Image by storyset