Materi/TypeScript Basics
🔷

TypeScript Basics

Intermediate+300 XP

Chapter

Pengenalan TypeScript

TypeScript adalah superset JavaScript yang menambahkan sistem tipe statis. Dibuat oleh Microsoft, sekarang dipakai oleh hampir semua perusahaan besar.

Kenapa TypeScript?

  • Deteksi error lebih awal — sebelum runtime
  • Autocomplete lebih baik — IDE tahu tipe data
  • Kode lebih mudah dibaca — tipe sebagai dokumentasi
  • Refactoring lebih aman — IDE bantu ubah kode
  • Tipe Data Dasar

    // Primitive types
    let nama: string = "CodeBook"
    let umur: number = 5
    let aktif: boolean = true
    let apapun: any = "bisa apa saja"  // hindari any!
    
    // Array
    let angka: number[] = [1, 2, 3]
    let kata: Array<string> = ["a", "b", "c"]
    
    // Tuple
    let pasangan: [string, number] = ["nama", 42]
    
    // Union type — bisa salah satu
    let id: string | number = "abc123"
    id = 456  // juga valid
    
    // Literal type
    let arah: "kiri" | "kanan" | "lurus" = "kiri"

    Interface & Type

    // Interface — mendefinisikan bentuk object
    interface User {
      id: string
      nama: string
      email: string
      xp?: number          // optional dengan ?
      readonly createdAt: Date  // tidak bisa diubah
    }
    
    // Type alias
    type Level = "Beginner" | "Intermediate" | "Pro" | "Master"
    
    type UserWithLevel = User & {
      level: Level
    }
    
    // Penggunaan
    const user: User = {
      id: "123",
      nama: "Budi",
      email: "budi@example.com",
      xp: 1500,
      createdAt: new Date()
    }

    Fungsi dengan TypeScript

    // Parameter dan return type
    function tambah(a: number, b: number): number {
      return a + b
    }
    
    // Arrow function
    const kali = (a: number, b: number): number => a * b
    
    // Optional & default parameter
    function sapa(nama: string, salam: string = "Halo"): string {
      return `${salam}, ${nama}!`
    }
    
    // Generic function
    function identitas<T>(nilai: T): T {
      return nilai
    }
    
    const angka = identitas<number>(42)
    const teks = identitas<string>("hello")