Apa itu TypeScript
TypeScript adalah superset statis dari JavaScript yang diperkenalkan oleh Microsoft. Ini diciptakan untuk mengatasi kompleksitas yang semakin meningkat pada aplikasi JavaScript skala besar. TypeScript memperluas JavaScript dengan memperkenalkan tipe data, interface, decorator, dan fitur lain yang memudahkan pengembangan dan pemeliharaan sistem perangkat lunak yang kompleks.
Meskipun TypeScript mencakup semua fungsionalitas JavaScript, ia menawarkan fitur tambahan yang tidak ada dalam JavaScript. Perbedaan paling penting adalah sistem tipe statis TypeScript. Berbeda dengan JavaScript yang memiliki tipe dinamis, TypeScript memungkinkan Anda untuk menentukan tipe variabel, parameter fungsi, dan nilai kembalian fungsi. Hal ini dapat membantu mendeteksi kesalahan umum dan membuat kode Anda lebih mudah dipahami dan dipelihara.
Fitur Unik TypeScript
TypeScript memperkenalkan sejumlah fitur yang membuatnya menjadi alat yang kuat untuk menulis aplikasi kompleks. Mari kita lihat lebih dalam beberapa fitur utama ini.
Tipe Statis
Fitur paling mendasar dari TypeScript adalah tipedata statisnya. Berbeda dengan JavaScript yang memungkinkan variabel mengubah tipe secara bebas (tipedata dinamis), TypeScript meminta Anda untuk mendeklarasikan tipe variabel saat Anda mendefinisikannya. Ini berarti tipe variabel diperiksa sebelum kode dijalankan (pada saat kompilasi), membantu menghindari kemungkinan bug terkait tipe.
let message: string;
message = 'Hello, World!'; // Okay
message = 42; // Error: Type 'number' is not assignable to type 'string'.
Pemeriksaan Tipe Lanjutan
TypeScript meningkatkan JavaScript dengan kemampuan pemeriksaan tipe yang canggih. Ini termasuk tipe union (sebuah nilai yang dapat menjadi salah satu dari beberapa tipe), tipe intersection (sebuah nilai yang harus memenuhi semua dari beberapa tipe), dan tipe literal (sebuah nilai yang harus menjadi satu nilai yang ditentukan), dan lain-lain.
type StringOrNumber = string | number; // Union type
let variable: StringOrNumber;
variable = 'Hello'; // Okay
variable = 42; // Okay
variable = true; // Error: Type 'boolean' is not assignable to type 'StringOrNumber'.
Generics
Generics menyediakan cara untuk membuat komponen bekerja dengan berbagai jenis data dan tidak membatasi pada satu jenis data. Generics memungkinkan Anda membuat komponen yang dapat digunakan kembali. Ini adalah fitur yang kuat yang memberikan fleksibilitas terhadap setiap jenis, sambil tetap menjaga keamanan tipe.
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>("myString"); // type of output will be 'string'
Interfaces
Interface dalam TypeScript digunakan untuk mendefinisikan kontrak (atau bentuk) untuk tipe data kompleks. Setelah sebuah interface dideklarasikan, setiap objek yang sesuai dengan struktur interface tersebut dapat diperlakukan sebagai contoh dari interface tersebut.
interface Person {
name: string;
age: number;
}
function greet(person: Person) {
return `Hello, ${person.name}`;
}
greet({ name: 'Alice', age: 25 }); // Okay
greet({ name: 'Bob' }); // Error: Property 'age' is missing in type '{ name: string; }' but required in type 'Person'.
Enums
Enum atau enumerasi adalah jenis data baru yang didukung dalam TypeScript. Mereka digunakan untuk membuat kumpulan nilai terkait yang dapat berupa nilai numerik atau nilai string.
enum Color {
Red,
Green,
Blue,
}
let c: Color = Color.Green;
Referensi