Belajar TypeScript 2: menulis Functions

TL;DR — TypeScript memungkinkan kita memastikan jenis parameter yang masuk ke sebuah fungsi, serta tipe data apa yang dihasilkan oleh keluarannya.

Tulisan ini adalah bagian kedua dari serial tulisan catatan saya mempelajari TypeScript. Kamu bisa membaca bagian lain dari serial ini melalui tautan berikut:

Belajar TypeScript 1: Type & Type Annotations

Daftar Isi — Klik untuk menuju bagian yang kamu inginkan

Pendahuluan Singkat — Skippable writing

Dalam pemrogragam, istilah fungsi (atau prosedur) mengacu pada sebuah set instruksi yang disatukan untuk mencapai keluaran tertentu. Fungsi membantu kita untuk melakukan abstraksi, yakni dengan membuat sebuah komponen dari program yang bisa digunakan berulang kali di banyak tempat.

Ngomong-ngomong, kadang kita suka salah membedakan fungsi dan metode. Coba cek diskusi di sini untuk memahami perbedaan antara keduanya:

Oke langsung aja kita belajar gimana TypeScript bisa membantu kita menulis fungsi yang lebih rapi.

Parameter Type Annotations

Pada bagian sebelumnya dari serial tulisan ini, kita telah belajar bahwa kita bisa menentukan tipe data dari nilai yang boleh kita masukkan ke dalam sebuah variabel. Proses itu dinamakan dengan type annotation — yakni mereservasi sebuah variabel untuk tipe data tertentu.

Fungsi yang kita tulis dalam sebuah program hampir selalu menerima parameter untuk diolah menjadi keluaran tertentu. Nah, membatasi jenis data yang bisa dimasukkan sebagai sebuah parameter pada suatu fungsi dapat mencegah bug dan membuat program kita lebih bisa diprediksi perilakunya.

lihatlah potongan kode JavaScript berikut:

Alih-alih mencetak panjang dari parameter, fungsi tersebut akan menghasilkan nilai undefined saat kita panggil dengan parameter bertipe number.

Masalah tersebut sebenarnya bisa diselesaikan dengan membuat sebuah error-handling logic. Tapi, hal tersebut dapat menjadi kompleks dalam kasus tertentu. Dengan bantuan Parameter Type Annotation di TypeScript, kita bisa mencegah parameter yang tidak dikehendaki digunakan untuk memanggil sebuah fungsi.

Cara menganotasikan parameter dengan type tertentu juga sama seperti type annotation pada sebuah variabel yang telah kita bahas, yaitu dengan menulis colon (:) setelah nama parameter dan diikuti dengan type yang dikehendaki.

Seperti type annotation pada variabel, type non-primitif yang kita susun sendiri juga bisa dianotasikan pada parameter sebuah fungsi. Dan seperti type annotation pada variabel juga, parameter yang tidak dianotasikan dengan type tertentu dan tidak diberi Default Value akan dianggap sebagai Any yang dapat menerima nilai dengan type apapun.

Optional and Default Parameters

Saat ingin membuat sebuah parameter menjadi default pada suatu fungsi, yang berarti parameter tersebut bisa diisi dengan nilai undefined atau tidak disediakan sama sekali, kita cukup menambahkan tanda tanya (‘?’) setelah menuliskan nama paramenter.

Sebuah parameter juga akan secara otomatis menjadi optional saat kita memberikan Default Value pada paremeter tersebut

Seperti yang terjadi pada penggalam kode di atas, selain memungkinkan fungsi dipanggil tanpa argumen, memberi default value juga menganotasikan parameter dengan type dari nilai yang diberikan sebagai Default Value.

Inferring Return Types

TypeScript juga memiliki kemampuan untuk menginferensi type dari keluaran sebuah fungsi. Maksudnya begini, saat sebuah fungsi dipanggil dan menghasilkan sebuah nilai, TypeScript bisa mengetahui type dari keluaran tersebut.

Explicit Return Types

TypeScript juga bisa menentukan secara eksplisit type jenis apa yang bisa menjadi keluaran dari sebuah fungsi. Kita hanya perlu menambahkan type annotation setelah kurung tutup saat menuliskan fungsinya.

Kita juga bisa membuat nilai keluaran yang eksplisit dengan arrow function.

Void Return Type

Dalam keadaan tertentu, mungkin bakal membuat fungsi yang tidak memproduksi sebuah keluaran. Misal saat kita ingin menulis sesuatu di console saja.

Pada kondisi tersebut pun, kita sangat disarankan untuk tetap menulis type annotation, yakni dengan :void

Terima kasih sudah membaca! ✨ Baca juga bagian lain dari serial Belajar TypeScript ini:

  1. Tingkatkan Permainan JavaScript–mu: Belajar TypeScript 1: Types
  2. Belajar TypeScript 2: menulis Function dan Parameter
  3. Tingkatkan Permainan JavaScript–mu: Belajar TypeScript 3: Complex Types
  4. Tingkatkan Permainan JavaScript–mu: Belajar TypeScript 4: Union Types & Type Narrowing
  5. Tingkatkan Permainan JavaScript–mu: Belajar TypeScript 5: Advanced Object Types

--

--