Pelajaran modul (1/2)
Fungsi yang Diketik
Fungsi adalah elemen dasar dari setiap aplikasi JavaScript. Di TypeScript, kami dapat secara tepat memberi anotasi pada argumen masukan dan nilai kembalian, menjadikan antarmuka dan pemanggilan fungsi kami sangat aman dan terdokumentasi sendiri.
Parameter Opsional dan Default
Dalam JavaScript, setiap parameter bersifat opsional dan defaultnya adalah undefined jika dihilangkan. Di TypeScript, secara default, setiap parameter yang dideklarasikan bersifat wajib.
Namun, kita dapat menentukan parameter opsional menggunakan tanda tanya (?), atau menentukan nilai default langsung di tanda tangan fungsi.
1. Parameter Opsional
Parameter opsional harus diposisikan setelah semua parameter wajib:
function greetUser(name: string, title?: string): string {
if (title) {
return `Good morning ${title} ${name}`;
}
return `Hello ${name}`;
}2. Parameter Bawaan
Jika tidak ada nilai yang diberikan untuk parameter dengan nilai default, TypeScript menyimpulkan tipenya dan menetapkan nilai default yang ditentukan:
function greetUserWithDefault(name: string, prefix: string = 'Hello'): string {
return `${prefix} ${name}`;
}Parameter Istirahat (...args)
Saat kita ingin menerima sejumlah argumen yang bervariasi, kita dapat menggunakan operator sisanya. Di TypeScript, parameter berikut harus diketik sebagai array:
function sumAll(message: string, ...numbers: number[]): string {
const total = numbers.reduce((sum, n) => sum + n, 0);
return `${message} ${total}`;
}Jenis Fungsi (Tanda Tangan Panggilan)
Kita dapat mendefinisikan tipe suatu fungsi secara independen dan kemudian menggunakannya kembali dalam deklarasi variabel atau argumen callback:
// Define function type using type alias
type MathOperation = (a: number, b: number) => number;
const add: MathOperation = (x, y) => x + y;
const multiply: MathOperation = (x, y) => x * y;Pendekatan ini penting ketika meneruskan fungsi sebagai argumen ke fungsi lain (callback).
Cobalah sendiri
Latihan 1: Parameter Opsional
Buat fungsi bernama formatName yang menerima parameter FirstName (string) dan parameter opsional LastName (string). Jika Nama Belakang diberikan, kembalikan 'Nama Depan Nama Belakang', jika tidak, kembalikan hanya 'Nama Depan'.
Tunjukkan petunjuk
Ingatlah bahwa parameter opsional dideklarasikan menggunakan string lastName?: setelah yang wajib.
Solusi tersedia setelah 3 upaya
Latihan 2: Parameter Default
Buat fungsi bernama power yang menerima basis (angka) dan eksponen (angka dengan nilai default 2). Fungsi tersebut harus menghitung dan mengembalikan nilai basis yang dipangkatkan ke eksponen (gunakan Math.pow).
Tunjukkan petunjuk
Gunakan basis: angka dan eksponen: angka = 2 dalam tanda tangan fungsi.
Solusi tersedia setelah 3 upaya
Latihan 3: Tanda Tangan Fungsi
Tentukan alias tipe bernama BinaryOp yang menjelaskan fungsi yang menerima dua parameter angka dan mengembalikan sebuah angka. Selanjutnya, deklarasikan konstanta bernama sum bertipe BinaryOp yang mengimplementasikan penjumlahan.
Tunjukkan petunjuk
Sintaks untuk suatu tipe fungsi adalah (a: number, b: number) => number.
Solusi tersedia setelah 3 upaya
Latihan 4: Fungsi Panggilan Balik
Buat fungsi bernama processItems yang menerima dua parameter: item (array string) dan callback (fungsi yang menerima string tunggal dan tidak mengembalikan apa pun, yaitu batal). Fungsi tersebut harus menjalankan perulangan for...of pada setiap elemen dalam items dan meneruskannya ke callback.
Tunjukkan petunjuk
Deklarasikan tanda tangan sebagai processItems(items: string[], callback: (item: string) => void): void dan gunakan loop untuk memanggil callback.
Solusi tersedia setelah 3 upaya