TypeScript - Jenis: Panduan Pemula

Hai sana, bintang coding masa depan! Hari ini, kita akan melihat dunia yang menarik jenis dalam TypeScript. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan temananda dalam perjalanan yang menarik ini. Pada akhir tutorial ini, Anda akan terkejut betapa banyak yang Anda pelajari. Jadi, mari kita mulai!

TypeScript - Types

Apa Itu Jenis dalam TypeScript?

Sebelum kita melompat ke lubang dalam, mari bicarakan apa itu jenis dan mengapa itu penting. Bayangkan jenis sebagai label yang kita tempelkan pada data kita. Seperti bagaimana kita mengatur lemari pakaian kita dengan bagian yang berbeda untuk kaos, celana, dan sepatu, jenis membantu kita mengatur kode kita dan mencegah kita dari menempatkan sepatu metaphoris di dalam drawer kaos!

TypeScript adalah superset dari JavaScript yang menambahkan tipe statis opsional. Ini berarti kita dapat memberitahu TypeScript tepat apa jenis data yang kita gunakan, yang membantu menangkap kesalahan sebelum kode kita bahkan dijalankan. Itu seperti memiliki seorang teman yang membantu melihat bahu Anda, menunjukkan kesalahan potensial sebelum Anda membuatnya.

Jenis Any: Joker TypeScript

Mari kita mulai dengan jenis yang paling fleksibel dalam TypeScript: any. Itu seperti joker di dalam kartu - itu bisa menjadi apa saja!

let myVariable: any = 42;
myVariable = "Hello, World!";
myVariable = true;

Dalam contoh ini, myVariable bisa menjadi number, kemudian string, kemudian boolean. Itu sangat fleksibel, tapi dengan kekuatan yang besar datang tanggung jawab yang besar. Menggunakan any terlalu sering menghapus tujuan menggunakan TypeScript, jadi gunakanlah itu hati-hati!

Jenis Bawaan: Fondasi TypeScript

TypeScript datang dengan beberapa jenis bawaan yang mencakup kebutuhan kita. Mari kita jelajahi mereka satu per satu:

1. Number

let age: number = 30;
let price: number = 9.99;

Jenis Number dalam TypeScript bisa adalah integer atau nilai pecahan. Tidak perlu khawatir tentang jenis number yang berbeda seperti dalam beberapa bahasa lain!

2. String

let name: string = "Alice";
let greeting: string = `Hello, ${name}!`;

String dapat didefinisikan dengan tanda petik tunggal, tanda petik ganda, atau backtick. Backtick memungkinkan kita untuk menanamkan ekspresi menggunakan ${}.

3. Boolean

let isStudent: boolean = true;
let hasPassedExam: boolean = false;

Boolean adalah sederhana - mereka adalah true atau false. Bayangkan mereka sebagai pertanyaan ya/tidak untuk kode Anda.

4. Array

let numbers: number[] = [1, 2, 3, 4, 5];
let fruits: Array<string> = ["apple", "banana", "orange"];

Array dapat menampung beberapa nilai dari jenis yang sama. Kita dapat mendefinisikan mereka menggunakan kurung siku atau sintaks Array<T>.

5. Tuple

let person: [string, number] = ["Alice", 30];

Tuple adalah array dengan jumlah elemen tetap, di mana setiap elemen dapat memiliki jenis yang berbeda. Mereka seperti kotak kecil, teratur dengan kompartemen spesifik untuk setiap item.

6. Enum

enum Color {
Red,
Green,
Blue
}
let favoriteColor: Color = Color.Blue;

Enums memungkinkan kita mendefinisikan set konstanta yang dinamai. Mereka bagus untuk merepresentasikan set opsi tetap.

7. Void

function logMessage(message: string): void {
console.log(message);
}

Void digunakan untuk menandakan bahwa fungsi tidak mengembalikan apa-apa. Itu seperti mengirim surat tanpa mengharapkan jawaban.

8. Null dan Undefined

let notDefined: undefined = undefined;
let empty: null = null;

Jenis ini merepresentasikan keabsenan nilai. Mereka seperti kotak kosong - satu yang kosong dengan kehendak (null) dan satu yang belum diisi (undefined).

Berikut adalah tabel yang menggabungkan jenis bawaan yang kita pelajari:

Jenis Deskripsi Contoh
number Nilai numerik (integer atau pecahan) let age: number = 30;
string Data teks let name: string = "Alice";
boolean Nilai true atau false let isStudent: boolean = true;
array Koleksi nilai jenis yang sama let numbers: number[] = [1, 2, 3];
tuple Array panjang tetap dengan elemen jenis tertentu let person: [string, number] = ["Alice", 30];
enum Set konstanta yang dinamai enum Color { Red, Green, Blue }
void Keabsenan nilai kembalian dalam fungsi function logMessage(message: string): void { ... }
null Keabsenan nilai objek let empty: null = null;
undefined Variabel yang belum diassign nilai let notDefined: undefined = undefined;

Jenis yang Ditentukan Pengguna: Membuat Alat Sendiri

Sekarang kita telah melihat jenis bawaan, mari bicarakan bagaimana Anda dapat membuat jenis khusus Anda sendiri. Ini adalah tempat TypeScript benar-benar bercahaya!

1. Interfaces

Interfaces memungkinkan kita mendefinisikan struktur objek. Bayangkan mereka sebagai blueprint untuk objek.

interface Person {
name: string;
age: number;
greet(): void;
}

let alice: Person = {
name: "Alice",
age: 30,
greet() {
console.log(`Hello, my name is ${this.name}`);
}
};

Dalam contoh ini, kita telah mendefinisikan sebuah Person interface dan membuat objek yang mengikuti struktur ini. Itu seperti membuat formulir yang semua orang harus mengisi - semua orang perlu menyediakan informasi yang sama.

2. Classes

Kelas adalah cara untuk membuat komponen yang dapat digunakan kembali. Mereka seperti pemotong kue - Anda mendefinisikan bentuk sekali, dan kemudian Anda dapat membuat banyak kue (objek) seperti itu!

class Student {
name: string;
grade: number;

constructor(name: string, grade: number) {
this.name = name;
this.grade = grade;
}

study() {
console.log(`${this.name} is studying hard!`);
}
}

let bob = new Student("Bob", 10);
bob.study(); // Output: "Bob is studying hard!"

Di sini, kita telah membuat kelas Student dengan properti (name dan grade) dan metode (study). Kita dapat membuat banyak siswa menggunakan kelas ini.

3. Type Aliases

Alias jenis memungkinkan kita membuat nama baru untuk jenis. Mereka berguna untuk membuat jenis kompleks atau memberi nama yang lebih menarik ke jenis yang sudah ada.

type Point = {
x: number;
y: number;
};

let center: Point = { x: 0, y: 0 };

Dalam contoh ini, kita telah membuat jenis Point yang merepresentasikan titik dalam ruang 2D. Itu adalah cara sederhana untuk mengelompokkan properti yang berkaitan bersamaan.

4. Union Types

Jenis gabungan memungkinkan nilai menjadi salah satu dari beberapa jenis. Itu seperti mengatakan, "Ini bisa menjadi ini atau itu."

type Result = number | string;

function getResult(value: boolean): Result {
return value ? "Success" : 404;
}

Di sini, Result bisa menjadi number atau string. Ini sangat berguna saat nilai bisa berupa jenis yang berbeda tergantung pada kondisi tertentu.

5. Intersection Types

Jenis silang menggabungkan jenis-jenis menjadi satu. Itu seperti mengatakan, "Ini harus ini DAN itu."

interface Colorful {
color: string;
}

interface Circle {
radius: number;
}

type ColorfulCircle = Colorful & Circle;

let myCircle: ColorfulCircle = {
color: "red",
radius: 5
};

Dalam contoh ini, ColorfulCircle adalah Colorful dan Circle. Itu harus memiliki color dan radius.

Dan itu saja! Kita telah melihat jenis dasar TypeScript, dari jenis any yang fleksibel ke jenis bawaan dan jenis yang ditentukan pengguna. Ingat, jenis dalam TypeScript adalah seperti superpower coding Anda - mereka membantu Anda menulis kode yang lebih bersih dan dapat dipercaya, dan menangkap kesalahan sebelum mereka menjadi masalah.

Buatlanjutkan perjalanan TypeScript Anda, terus mencoba jenis ini. Cobalah menggabungkannya dalam cara yang berbeda, dan jangan takut membuat kesalahan - itu adalah bagaimana kita belajar! Sebelum Anda menyadari, Anda akan mengetik seperti seorang pro, membuat kode yang kuat dan bebas kesalahan.

Selamat coding, dan semoga jenis Anda selalu kuat!

Credits: Image by storyset