Jenis void dalam Fungsi
Pahami perbedaan void dan undefined pada posisi nilai yang dikembalikan fungsi.
Jenis void dalam Fungsi adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.
Tipe Pengembalian Tanpa Nilai
void menjelaskan fungsi yang tidak mengembalikan nilai berguna. Fungsi tersebut tetap selesai; hanya saja tidak menghasilkan sesuatu yang perlu Anda gunakan. Tipe ini digunakan untuk fungsi yang dipanggil karena efek sampingnya.
function log(message: string): void {
console.log(message);
}
log('Hello void');Tipe Tanpa Nilai yang Disimpulkan
Jika fungsi tidak memiliki pernyataan return (atau hanya memiliki return; kosong), TypeScript otomatis menyimpulkan void. Anda jarang perlu menuliskannya secara eksplisit, meskipun hal itu mendokumentasikan maksud.
function greet(name: string) {
console.log('Hi ' + name);
// no return -> inferred void
}
greet('Ada');Tipe Tanpa Nilai dan Nilai Tak Terdefinisi
Keduanya saling berkaitan, tetapi tidak sama. Fungsi bertipe void mungkin benar-benar mengembalikan undefined atau tidak, dan Anda tidak seharusnya bergantung pada nilai pengembaliannya. Fungsi yang bertipe mengembalikan undefined harus mengembalikannya secara eksplisit.
function a(): void { /* returns nothing useful */ }
function b(): undefined { return undefined; }
console.log(a(), b());Jangan Gunakan Hasil Tanpa Nilai
Nilai saat berjalan dari pemanggilan void adalah undefined, tetapi sistem tipe tidak menganjurkan penggunaannya. Perlakukan void sebagai tanda untuk mengabaikan nilai pengembalian ini.
function save(): void {
console.log('saved');
}
const result = save(); // result has type void
console.log(result); // undefined at runtimeTipe Tanpa Nilai pada Fungsi Panggilan Balik
Ada aturan yang halus tetapi kuat: fungsi panggilan balik yang bertipe mengembalikan void dapat dipenuhi oleh fungsi yang mengembalikan nilai apa pun. Nilai pengembalian tambahan tersebut cukup diabaikan.
type Handler = () => void;
const h: Handler = () => 42; // returns number, still fine
h();
console.log('Returned value is ignored by callers');Alasan Aturan Ini Ada
Fleksibilitas ini memungkinkan Anda meneruskan fungsi seperti arr.push (yang mengembalikan angka) sebagai fungsi panggilan balik bertipe void. Pemanggil telah berjanji untuk tidak menggunakan nilai pengembalian, sehingga pengembalian apa pun tidak berbahaya.
const items: number[] = [];
const nums = [1, 2, 3];
nums.forEach((n) => items.push(n)); // push returns number, ok
console.log(items);Tipe Tanpa Nilai Berdasarkan Konteks pada Metode Larik
forEach mengharapkan fungsi panggilan balik yang mengembalikan void. Karena itu, Anda dapat menulis fungsi panah satu baris yang secara tidak sengaja mengembalikan nilai tanpa menimbulkan kesalahan—tipe void berdasarkan konteks akan menampungnya.
const result: string[] = [];
['a', 'b'].forEach((x) => result.push(x.toUpperCase()));
console.log(result);Kesalahpahaman yang Umum
Aturan fungsi panggilan balik void berlaku pada tipe fungsi panggilan balik, bukan pada fungsi yang anotasi tipe pengembaliannya sendiri adalah void. Fungsi yang secara harfiah dideklarasikan sebagai (): void tetap tidak boleh memiliki return value; dengan nilai selain undefined.
function f(): void {
return; // ok
// return 5; // Error: 5 not assignable to void
}
f();
console.log('declared void cannot return a value');Parameter Tanpa Nilai Tidak Lazim
Walaupun jarang, void dapat muncul sebagai tipe parameter dalam generik tingkat lanjut. Dalam kode sehari-hari, Anda hampir selalu melihatnya sebagai tipe pengembalian yang menandakan “tidak ada hasil yang bermakna”.
type Listener = (event: string) => void;
const onClick: Listener = (e) => console.log('Event:', e);
onClick('click');Tipe Tanpa Nilai dengan Janji
Fungsi asinkron sering mengembalikan Promise<void> ketika melakukan pekerjaan tetapi selesai tanpa menghasilkan nilai. Pola ini mencerminkan void sinkron untuk kode asinkron.
async function sync(): Promise<void> {
console.log('syncing...');
// resolves with no value
}
sync().then(() => console.log('done'));Memilih Tipe Tanpa Nilai dengan Sengaja
Beri anotasi void ketika Anda ingin menyampaikan bahwa suatu fungsi ada untuk efek sampingnya dan pemanggil tidak boleh bergantung pada nilai pengembalian. Hal ini memperjelas maksud dan memungkinkan Anda memanfaatkan aturan fungsi panggilan balik yang fleksibel.
function notify(msg: string): void {
console.log('NOTIFY:', msg);
}
const handlers: Array<(m: string) => void> = [notify];
handlers.forEach((fn) => fn('ping'));Pemeriksaan Singkat
Ujilah pemahaman Anda tentang tipe tanpa nilai.
Rangkuman: Tipe Tanpa Nilai
Anda telah mempelajari bahwa void:
- Menandai fungsi yang mengembalikan tidak ada nilai berguna.
- Berbeda dari
undefined: hasil bertipe tanpa nilai tidak boleh digunakan. - Sebagai tipe fungsi panggilan balik, menerima fungsi yang mengembalikan nilai apa pun, yang diabaikan oleh pemanggil.
- Memungkinkan penggunaan metode seperti
pushsecara rapi di dalamforEach.
Selanjutnya, kita akan menggabungkan semuanya: menangani unknown dengan aman.
const tasks: Array<() => void> = [
() => console.log('task 1'),
() => console.log('task 2')
];
tasks.forEach((t) => t());Pertanyaan yang Sering Diajukan
Apakah pelajaran “Jenis void dalam Fungsi” gratis?
Ya — teks lengkap “Jenis void dalam 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 “Jenis void dalam Fungsi”?
Pahami perbedaan void dan undefined pada posisi nilai yang dikembalikan fungsi. 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 3 dari 4.
Berapa lama pelajaran “Jenis void dalam 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
- Memahami unknown vs any
- Jenis never dan Status yang Mustahil
- Jenis void dalam Fungsi
- Penanganan unknown yang Aman Secara Jenis