Lompati ke konten utama
Modul 3 · Pelajaran 1 dari 25/14 dalam kursus~12 min
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:

TS
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:

TS
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:

TS
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:

TS
// 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

Latihan#ts.m3.l1.e1
Upaya: 0Memuat…

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'.

Memuat editor…
Tunjukkan petunjuk

Ingatlah bahwa parameter opsional dideklarasikan menggunakan string lastName?: setelah yang wajib.

Solusi tersedia setelah 3 upaya

Latihan 2: Parameter Default

Latihan#ts.m3.l1.e2
Upaya: 0Memuat…

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).

Memuat editor…
Tunjukkan petunjuk

Gunakan basis: angka dan eksponen: angka = 2 dalam tanda tangan fungsi.

Solusi tersedia setelah 3 upaya

Latihan 3: Tanda Tangan Fungsi

Latihan#ts.m3.l1.e3
Upaya: 0Memuat…

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.

Memuat editor…
Tunjukkan petunjuk

Sintaks untuk suatu tipe fungsi adalah (a: number, b: number) => number.

Solusi tersedia setelah 3 upaya

Latihan 4: Fungsi Panggilan Balik

Latihan#ts.m3.l1.e4
Upaya: 0Memuat…

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.

Memuat editor…
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