~/VibeHandbook
PDF Gratis

Bahasa

typescriptlang.org

TypeScript

Apa itu ini

Bayangkan sebuah pemeriksa ejaan yang menggarisbawahi kata yang salah eja saat kamu mengetik, sebelum kamu sempat mengirimnya. TypeScript melakukan hal itu untuk kodemu. Ia adalah JavaScript dengan sistem tipe statis yang ditambahkan di atasnya — sekumpulan aturan yang memeriksa kodemu saat kamu menulisnya dan menandai kesalahan sejak dini. Ia dikompilasi menjadi JavaScript biasa, sehingga bisa berjalan di mana pun JS berjalan — browser, Node, Deno, Bun, runtime — sambil menangkap seluruh kelas bug sebelum kodemu benar-benar dieksekusi.

Kelebihan

  • Tipe statis menangkap salah ketik, kesalahan null, dan ketidakcocokan bentuk data pada saat kompilasi.
  • Pengalaman editor yang luar biasa: autocomplete, dokumentasi inline, refactor yang aman.
  • Adopsi bertahap — kamu bisa memberi tipe sebanyak atau sesedikit yang kamu mau.
  • Bahasa yang sama untuk dan , dengan ekosistem npm (Node Manager) yang sangat besar.

Trade-off

  • Ada langkah build/kompilasi dan tsconfig.json yang perlu dikonfigurasi.
  • Sistem tipe cukup kuat sehingga bisa benar-benar rumit (generics, conditional types) dan bisa menghabiskan banyak waktu.
  • Pemeriksaan tipe hanya terjadi saat kamu menulis dan membangun kode. Begitu program benar-benar berjalan, pemeriksaan itu sudah hilang, jadi kamu tetap butuh validasi runtime (pemeriksaan kedua yang memeriksa data nyata saat program berjalan, misalnya Zod) untuk input yang tidak dipercaya.
  • Ada churn (pergantian) pada setup dan tooling di berbagai bundler dan runtime.

Kapan menggunakannya

Gunakan TypeScript untuk proyek JavaScript non-trivial apa pun, terutama yang melibatkan banyak kontributor atau berumur panjang. Ia menjadi pilihan default untuk aplikasi web modern (React, Next.js, SvelteKit), backend Node/edge, dan apa pun yang keamanan refactoring-nya penting.

Kecocokan dengan vibe coding

Asisten AI unggul dalam TypeScript karena pemeriksa tipe memberi mereka — dan kamu — sebuah loop umpan balik yang cepat: tempelkan kembali error kompilasi dan model biasanya memperbaikinya dengan rapi. Arahkan AI dengan meminta tipe yang presisi alih-alih any, dan minta validasi runtime pada batas-batas kepercayaan (input (Application Programming Interface), variabel environment (env vars)). Beri tahu secara eksplisit versi runtime dan framework-mu agar import dan konfigurasi yang dihasilkan cocok. Ketika tipe menjadi rumit, minta model menjelaskan tipe yang disimpulkan (inferred type) alih-alih melebarkannya secara membabi buta.

type User = { id: number; name: string; email?: string };

function greet(user: User): string {
  return `Hi ${user.name}` + (user.email ? ` <${user.email}>` : "");
}

console.log(greet({ id: 1, name: "Ada" }));