TypeScript
Pengenalan TypeScript
Apa itu TypeScript, kenapa dipakai di atas JavaScript, dan cara instalasi serta menjalankan kode TypeScript pertamamu.
Tipe Dasar di TypeScript
Tipe data dasar TypeScript: string, number, boolean, array, dan any.
Type Annotation & Type Inference
Cara menulis tipe secara eksplisit (annotation), dan kemampuan TypeScript menebak tipe otomatis (inference).
Interface di TypeScript
Mendefinisikan bentuk (shape) objek lewat interface, termasuk properti opsional dan readonly.
Type Alias vs Interface
Membuat alias tipe dengan type, dan kapan memilihnya dibanding interface.
Union & Intersection Types
Menggabungkan beberapa tipe jadi satu lewat union (|) dan intersection (&).
Literal Types & Enum
Membatasi nilai ke pilihan tertentu lewat literal type, dan mendefinisikan konstanta bernama lewat enum.
Fungsi Bertipe di TypeScript
Anotasi tipe pada parameter dan return value fungsi, termasuk parameter opsional dan default.
Tuple & Readonly Array
Array dengan jumlah dan tipe elemen tetap (tuple), serta array yang tidak bisa diubah (readonly).
Object Types & Interface Bersarang
Anotasi bentuk objek langsung inline, dan interface yang bersarang di dalam interface lain.
Class di TypeScript
Access modifier public/private/protected pada class, dan constructor shorthand.
Interface pada Class & Abstract Class
Memaksa class mengikuti kontrak lewat implements, dan class abstrak yang tidak bisa di-instantiate langsung.
Generics Dasar di TypeScript
Fungsi, interface, dan class yang bekerja dengan berbagai tipe data tanpa kehilangan informasi tipe.
Generic Constraints
Membatasi tipe generic supaya hanya menerima tipe yang punya properti/method tertentu lewat extends.
Type Narrowing
Mempersempit tipe union jadi tipe lebih spesifik lewat typeof, instanceof, dan discriminated union.
Type Assertion & unknown vs any
Memaksa tipe tertentu lewat as, dan bedanya unknown (aman) dengan any (menonaktifkan pengecekan tipe).
Utility Types
Transformasi tipe bawaan TypeScript: Partial, Pick, Omit, Record, dan Readonly.
Module & tsconfig.json
Memecah kode antar file lewat import/export, dan konfigurasi compiler lewat tsconfig.json.
Tugas Akhir
Latihan akhir menggabungkan interface, class, generics, dan utility types dalam satu sistem manajemen buku perpustakaan.