TypeScript - Tipe Dasar
TypeScript menyediakan tipe bawaan yang memperluas kemampuan JavaScript.
Tipe Primitif
let nama: string = "Alice";
let umur: number = 25;
let aktif: boolean = true;
// Tipe khusus TypeScript
let tidakDiketahui: any = "apa saja"; // Hindari penggunaan any
let belumTahu: unknown = "bisa apa saja"; // Lebih aman dari any
let kosong: void = undefined; // Fungsi tanpa return value
let tidakPernah: never; // Fungsi yang selalu throw errorArray dan Tuple
// Array
let angka: number[] = [1, 2, 3];
let namaOrang: Array<string> = ["Alice", "Bob"];
// Tuple — array dengan tipe terstruktur dan panjang tetap
let koordinat: [number, number] = [10, 20];
let pengguna: [string, number, boolean] = ["Budi", 25, true];Enum
enum Status {
Pending, // 0
Approved, // 1
Rejected, // 2
}
enum Peran {
Admin = "ADMIN",
User = "USER",
Guest = "GUEST",
}
let statusPesanan = Status.Pending;Object dan Interface
interface Pengguna {
id: number;
nama: string;
email?: string; // opsional dengan tanda ?
}
let user: Pengguna = { id: 1, nama: "Alice" };Type Alias
type ID = string | number;
type Koordinat = [number, number];
type Callback = (error: Error | null, data?: string) => void;Union dan Intersection
// Union — nilai bisa salah satu dari beberapa tipe
let id: string | number = 123;
id = "ABC";
// Intersection — gabungan semua properti dari beberapa tipe
interface Alamat {
jalan: string;
kota: string;
}
interface Kontak {
telepon: string;
email: string;
}
type ProfilLengkap = Alamat & Kontak;
let profil: ProfilLengkap = {
jalan: "Jl. Merdeka",
kota: "Jakarta",
telepon: "08123456789",
email: "budi@email.com",
};Type Inference
TypeScript dapat menebak tipe secara otomatis:
let pesan = "Hello"; // TypeScript tahu ini string
let nilai = 42; // TypeScript tahu ini number
let list = [1, 2, 3]; // TypeScript tahu ini number[]
// Tidak perlu menuliskan tipe jika sudah jelas dari konteks