TypeScript Academy · Pelajaran

void, never, dan Tanda Tangan Fungsi

Pahami void untuk fungsi tanpa nilai kembali dan never untuk kode yang tidak dapat dijangkau.

Pelajaran 4 dari 413 langkah

void, never, dan Tanda Tangan Fungsi adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar TypeScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus TypeScript Academy mencakup 4 pelajaran total.

Selamat Datang

Dua tipe pengembalian khusus—void dan never—merepresentasikan fungsi yang tidak menghasilkan nilai yang berguna dan fungsi yang tidak pernah selesai secara normal.

void: Tidak Ada Pengembalian Bermakna

void digunakan ketika fungsi melakukan efek samping tetapi tidak mengembalikan nilai. Tipe ini memungkinkan pengembalian undefined, tetapi memberi sinyal bahwa nilai pengembalian tidak boleh digunakan.
function logError(msg: string): void {
  console.error(msg);
  // implicit return undefined
}

Perbedaan antara void dan undefined

void dan undefined serupa, tetapi berbeda. Fungsi bertipe void dapat mengembalikan undefined. Namun, void memberi sinyal bahwa pemanggil harus mengabaikan nilai pengembalian tersebut.
const fn: () => void = () => 42; // Allowed! Caller ignores return
const fn2: () => undefined = () => 42; // Error

void dalam Fungsi Panggilan Balik

Saat memberi tipe pada parameter fungsi panggilan balik, void menunjukkan bahwa pemanggil tidak menggunakan nilai pengembalian. Hal ini memungkinkan fungsi panggilan balik mengembalikan tipe apa pun.
function run(cb: () => void): void { cb(); }
run(() => 'hello'); // OK — return value ignored

never: Tipe yang Tidak Terjangkau

never merepresentasikan nilai yang tidak pernah terjadi. Fungsi yang mengembalikan never akan melempar galat atau berulang tanpa batas.
function fail(msg: string): never {
  throw new Error(msg);
}
function loop(): never {
  while (true) {}
}

never dalam Pemeriksaan Kelengkapan Kasus

never digunakan dalam pernyataan switch untuk memastikan semua kasus gabungan telah ditangani. Penetapan ke never menyebabkan galat jika ada kasus yang terlewat.
type Shape = 'circle' | 'square';
function area(s: Shape): number {
  switch (s) {
    case 'circle': return 3.14;
    case 'square': return 1;
    default:
      const _: never = s; // Error if a new shape is added
      return 0;
  }
}

never Adalah Subtipe dari Segalanya

never dapat ditetapkan ke setiap tipe (karena tidak pernah terjadi, tipe ini secara vakum memenuhi tipe apa pun). Tidak ada tipe lain yang dapat ditetapkan ke never.

Tanda Tangan Tipe Fungsi

Tipe fungsi ditulis sebagai `(param: Type) => ReturnType`. Ini menjelaskan fungsi sebagai nilai kelas satu.
type Handler = (event: MouseEvent) => void;
type Transform = (input: string) => string;

Tanda Tangan Pemanggilan dalam Antarmuka

Antarmuka dapat mendefinisikan tipe yang dapat dipanggil menggunakan sintaks tanda tangan pemanggilan.
interface Formatter {
  (value: string): string;
  locale: string;
}

Tanda Tangan Konstruktor

Antarmuka juga dapat mendefinisikan tipe yang dapat dikonstruksi dengan menggunakan kata kunci new dalam tanda tangan konstruktor.
interface Constructor {
  new (name: string): Animal;
}

Menggabungkan void dan never dalam Penanganan Galat

Fungsi yang selalu melempar galat menggunakan never. Fungsi yang menelan galat dan tidak mengembalikan apa pun menggunakan void. Perbedaan ini penting untuk analisis alur kendali.
function orThrow(val: string | null): string {
  if (val === null) fail('null!'); // never
  return val; // TypeScript knows this is reachable
}

Pemeriksaan Singkat

Tipe pengembalian mana yang menandakan bahwa sebuah fungsi akan selalu melempar galat dan tidak pernah mengembalikan nilai secara normal?

Rangkuman

Gunakan void untuk fungsi berefek samping tanpa pengembalian bermakna. Gunakan never untuk fungsi yang melempar galat atau berulang tanpa batas. never memungkinkan pemeriksaan kelengkapan kasus dan merupakan subtipe dari semua tipe.
Gratis untuk memulai

Belajar TypeScript dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
101
Pelajaran
352

Pertanyaan yang Sering Diajukan

Apakah pelajaran “void, never, dan Tanda Tangan Fungsi” gratis?

Ya — teks lengkap “void, never, dan Tanda Tangan Fungsi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus TypeScript Academy, upgrade ke CoddyKit PRO. Kursus TypeScript Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “void, never, dan Tanda Tangan Fungsi”?

Pahami void untuk fungsi tanpa nilai kembali dan never untuk kode yang tidak dapat dijangkau. Kamu berlatih TypeScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai TypeScript Academy?

Tidak diperlukan pengalaman sebelumnya. TypeScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “void, never, dan Tanda Tangan Fungsi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Anotasi Tipe Parameter dan Nilai Kembali
  2. Parameter Opsional dan Bawaan
  3. Parameter Rest dan Spread dengan Tipe
  4. void, never, dan Tanda Tangan Fungsi
← Kembali ke TypeScript Academy