Apa itu Type Assertions dan Type Annotations?


Type assertions dan type annotations adalah dua fitur penting dalam TypeScript (atau bahasa pemrograman lainnya yang mendukung sistem tipe statis) yang memungkinkan pengembang untuk bekerja dengan tipe data secara lebih eksplisit. Berikut adalah penjelasan tentang masing-masing fitur ini.
Type Assertions
Type assertions adalah cara untuk memberi tahu TypeScript bahwa kita lebih memahami tipe data suatu nilai dibandingkan dengan apa yang dapat disimpulkan oleh TypeScript itu sendiri. Fitur ini memungkinkan kita untuk "memaksa" suatu nilai agar dianggap memiliki tipe tertentu.
Sintaksis Type Assertions
Ada dua cara utama untuk melakukan type assertion:
Menggunakan ``:
let someValue: unknown = "Hello, world!"; let strLength: number = (someValue as string).length;
Menggunakan sintaks lama (kurang disarankan):
let someValue: unknown = "Hello, world!"; let strLength: number = (<string>someValue).length;
Kapan Menggunakan Type Assertions?
Type assertions digunakan dalam situasi berikut:
Ketika TypeScript tidak dapat menyimpulkan tipe data dengan benar.
Ketika kita yakin bahwa nilai tertentu memiliki tipe yang sesuai dengan asumsi kita.
Catatan Penting
Type assertions tidak melakukan pemeriksaan tipe pada runtime. Jika tipe data yang diasumsikan salah, maka akan menyebabkan kesalahan runtime, tetapi TypeScript tidak akan mendeteksi masalah tersebut saat proses kompilasi.
Type Annotations
Type annotations adalah cara untuk secara eksplisit mendeklarasikan tipe data untuk variabel, fungsi, atau parameter. Dengan menggunakan type annotations, pengembang dapat membantu TypeScript memahami tipe data yang seharusnya digunakan selama pengembangan.
Sintaksis Type Annotations
Pada Variabel:
let message: string = "Hello, TypeScript!";
Pada Parameter dan Return Value Fungsi:
function greet(name: string): string { return `Hello, ${name}`; }
Pada Array:
let numbers: number[] = [1, 2, 3];
Pada Objek:
let person: { name: string; age: number } = { name: "John", age: 25 };
Kapan Menggunakan Type Annotations?
Ketika TypeScript tidak dapat menyimpulkan tipe data secara otomatis.
Ketika ingin memberikan dokumentasi eksplisit tentang tipe data untuk meningkatkan keterbacaan dan kejelasan kode.
Perbedaan Utama
Aspek | Type Assertions | Type Annotations |
Tujuan | Memaksa tipe tertentu pada suatu nilai. | Mendeklarasikan tipe secara eksplisit. |
Sintaksis | value as Type atau <Type>value . | variable: Type atau function(param: Type) . |
Pemeriksaan Tipe | Tidak memeriksa tipe pada runtime. | Memastikan tipe yang sesuai selama kompilasi. |
Kesimpulan
Type Assertions: Digunakan untuk mengubah cara TypeScript melihat tipe data yang ada. Cocok ketika kita yakin bahwa suatu nilai memiliki tipe tertentu.
Type Annotations: Digunakan untuk mendeklarasikan tipe data secara eksplisit, membantu TypeScript memahami tipe yang digunakan dan memberikan perlindungan tipe yang lebih baik.
Kedua fitur ini sangat berguna untuk meningkatkan keandalan dan keterbacaan kode dalam proyek TypeScript.
Subscribe to my newsletter
Read articles from Ariska Hidayat directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Ariska Hidayat
Ariska Hidayat
I am an enthusiastic researcher and developer with a passion for using technology to innovate in business and education.