Salah satu daya tarik JavaScript (bahasa pemrograman utama halaman web) terletak pada fleksibilitasnya. Anda bisa membuat variabel tanpa menyebut tipenya, mengubah isinya dari angka menjadi teks, dan bahasa itu tetap menjalankannya tanpa protes. Untuk skrip kecil, kelonggaran ini terasa membebaskan.
Masalah muncul ketika proyek membesar. Sebuah fungsi yang mengira menerima angka ternyata dikirimi teks dari sebuah form, dan hasilnya baru ketahuan salah saat aplikasi sudah dipakai pengguna. Di sinilah TypeScript hadir. TypeScript adalah bahasa yang menambahkan sistem tipe pada JavaScript sehingga kesalahan semacam itu tertangkap lebih awal, jauh sebelum kode sampai ke pengguna. Artikel ini membahas apa itu TypeScript, cara kerjanya, bedanya dengan JavaScript, serta kapan Anda sebaiknya memakainya.
Apa Itu TypeScript?
TypeScript adalah bahasa pemrograman yang dikembangkan oleh Microsoft dan dirilis pertama kali pada tahun 2012. Ia bersifat open source dan dirancang sebagai superset dari JavaScript — artinya TypeScript mencakup seluruh kemampuan JavaScript, lalu menambahkan fitur di atasnya.
Fitur tambahan yang paling utama adalah static typing (sistem tipe statis). Dengan sistem ini, Anda bisa menegaskan bahwa sebuah variabel harus berupa angka, teks, atau bentuk data tertentu, dan bahasa akan memeriksa janji tersebut. Karena TypeScript adalah superset, satu konsekuensi penting muncul: setiap kode JavaScript yang valid otomatis merupakan kode TypeScript yang valid. Anda tidak perlu membuang kode lama untuk mulai memakainya.
Perlu diklarifikasi sejak awal soal singkatan. TS adalah singkatan dari TypeScript — dua istilah itu merujuk pada hal yang sama, dan penyebutan "TS" hanya bentuk ringkasnya yang lazim di kalangan developer. Jadi ketika Anda melihat berkas berekstensi .ts atau mendengar orang menyebut "kode TS", yang dimaksud adalah TypeScript.
Cara Kerja TypeScript: Kode yang Tidak Dijalankan Langsung
Ada satu fakta mendasar yang sering membingungkan pemula, dan memahaminya membuat banyak hal lain jadi masuk akal: tidak ada browser atau server yang benar-benar menjalankan TypeScript. Browser hanya mengerti JavaScript. Node.js pun hanya menjalankan JavaScript.
Lalu bagaimana TypeScript bekerja? Kode TypeScript harus melewati proses compile (kadang disebut transpile) terlebih dahulu. Sebuah program bernama compiler — untuk TypeScript namanya tsc — membaca berkas .ts Anda, memeriksa semua tipe di dalamnya, lalu mengeluarkan berkas .js biasa. Berkas JavaScript hasil terjemahan itulah yang akhirnya dijalankan.
Diagram alur TypeScript dari kode .ts, compiler tsc, hingga JavaScript di browser atau Node.js.
Alur ini menjelaskan dari mana nilai TypeScript sebenarnya berasal. Pemeriksaan tipe terjadi di langkah kedua, saat compile — bukan saat program berjalan. Kalau ada tipe yang tidak cocok, compiler memberi tahu Anda saat itu juga dan menolak menghasilkan kode yang bermasalah. Kesalahan dihentikan di meja kerja, bukan di tangan pengguna.
Sebagai catatan terbaru, compiler ini baru saja mengalami pembaruan besar. Pada Juli 2026, Microsoft merilis TypeScript 7.0 dengan tsc yang ditulis ulang menggunakan bahasa Go, sehingga proses compile berjalan sekitar 8–12 kali lebih cepat dibanding versi sebelumnya. Bagi pengguna, artinya umpan balik dari compiler kini terasa lebih instan.
Static Typing: Menangkap Bug Sebelum Aplikasi Berjalan
Untuk merasakan gunanya, mari lihat satu jenis bug yang sangat umum di JavaScript. Data dari sebuah input form hampir selalu berupa teks, meski isinya angka. Perhatikan kode JavaScript berikut:
const harga = "50000"; // berasal dari input form, bertipe teks
const ongkir = 10000;
console.log(harga + ongkir); // "5000010000", bukan 60000JavaScript tidak menganggap ini kesalahan. Ia menggabungkan teks dengan angka menjadi teks panjang, dan program tetap berjalan seolah tidak terjadi apa-apa. Bug seperti ini kerap lolos sampai ada pengguna yang melihat harga aneh di layar.
Dengan TypeScript, kesalahan yang sama tertangkap saat Anda menulis kode:
const harga: number = "50000";
// Error: Type 'string' is not assignable to type 'number'.Compiler langsung menolak. Anda diberi tahu bahwa sebuah teks tidak boleh dimasukkan ke variabel bertipe angka, lengkap dengan lokasinya. Contoh lain yang sama seringnya adalah salah ketik nama properti:
const user = { nama: "Andi", umur: 25 };
console.log(user.name); // undefined — salah ketik 'name', JavaScript diam sajaJavaScript mengembalikan undefined tanpa peringatan, dan Anda menghabiskan waktu berjam-jam mencari penyebabnya. TypeScript, karena tahu bentuk objek user, langsung menandai user.name sebagai properti yang tidak ada. Inilah inti nilai TypeScript: memindahkan penemuan bug dari fase pemakaian ke fase penulisan.
Diagram perbandingan JavaScript dan TypeScript, bug lolos di JavaScript dan tertahan pemeriksaan tipe pada TypeScript.
Mengenal Tipe Data dan Interface
Dua fitur berikut adalah bekal pertama yang perlu Anda kenali saat menulis TypeScript. Yang pertama adalah anotasi tipe pada variabel, yang cara menulisnya cukup menambahkan tanda titik dua dan nama tipe. Tipe data TypeScript yang paling dasar meliputi string untuk teks, number untuk angka, dan boolean untuk nilai benar/salah.
let judul: string = "Belajar TypeScript";
let jumlah: number = 10;
let aktif: boolean = true;
let daftarHarga: number[] = [1000, 2000, 3000]; // array berisi angkaFitur kedua adalah interface, yaitu cara mendefinisikan bentuk sebuah objek. TypeScript interface bekerja seperti cetak biru: ia menyebutkan properti apa saja yang harus ada beserta tipenya, lalu setiap objek yang mengaku mengikuti cetak biru itu akan diperiksa.
interface Produk {
nama: string;
harga: number;
tersedia: boolean;
}
const laptop: Produk = {
nama: "Laptop Pro",
harga: 15000000,
tersedia: true,
};Kalau Anda lupa mengisi salah satu properti atau salah menaruh tipe, compiler menolak sebelum kode dijalankan. Objek laptop di atas memenuhi kontrak Produk, jadi TypeScript menerimanya tanpa keluhan.
Satu hal yang sering dikhawatirkan pemula: apakah tipe harus ditulis di setiap tempat? Ternyata tidak. TypeScript memiliki kemampuan type inference (penyimpulan tipe), yaitu menebak tipe sebuah variabel secara otomatis begitu variabel itu diberi nilai:
let namaProduk = "Keyboard"; // otomatis disimpulkan bertipe string
namaProduk = 100; // Error: number tidak boleh masuk ke stringAnda tidak menuliskan : string sama sekali, tetapi TypeScript sudah menjaganya. Berkat inference inilah menulis TypeScript pada praktiknya tidak selelah yang dibayangkan. Anda cukup memberi tipe di tempat yang benar-benar penting — seperti parameter fungsi dan data yang datang dari luar — lalu biarkan compiler menyimpulkan sisanya.
Saat berpindah dari JavaScript, Anda mungkin bertemu tipe
any. Tipe ini memerintahkan TypeScript berhenti memeriksa sebuah nilai. Ia berguna sebagai jalan keluar sementara ketika migrasi dilakukan bertahap, tetapi memakainya berlebihan sama saja mematikan manfaat utama TypeScript. Perlakukananysebagai pinjaman yang harus dilunasi, bukan kebiasaan.
Perbedaan TypeScript dan JavaScript
Setelah memahami cara kerjanya, perbedaan TypeScript dan JavaScript jadi lebih mudah dijelaskan. Keduanya bukan dua dunia terpisah — TypeScript adalah lapisan tambahan di atas JavaScript. Tabel berikut merangkum bedanya:
| Aspek | JavaScript | TypeScript |
|---|---|---|
| Sistem tipe | Dinamis, tipe diperiksa saat berjalan | Statis, tipe diperiksa saat compile |
| Deteksi error | Muncul saat program dijalankan | Muncul saat kode ditulis/di-compile |
| Butuh compile | Tidak, langsung dijalankan | Ya, di-compile dulu jadi JavaScript |
| Dijalankan browser | Langsung | Tidak, harus jadi JavaScript dulu |
| Kurva belajar | Lebih landai | Sedikit lebih curam di awal |
Poin yang perlu ditegaskan: karena TypeScript adalah superset, Anda tidak sedang memilih salah satu dari dua bahasa yang bermusuhan. Menulis TypeScript berarti tetap menulis JavaScript, hanya dengan jaring pengaman tambahan. Kalau suatu bagian belum ingin Anda beri tipe, TypeScript mengizinkannya, sehingga peralihan bisa dilakukan sedikit demi sedikit.
Ilustrasi perbandingan JavaScript dan TypeScript sebagai superset dengan tipe statis dan compile.
Kelebihan TypeScript
Beberapa alasan berikut menjelaskan mengapa banyak perusahaan dan proyek besar mengadopsi TypeScript. Kelebihan TypeScript yang paling terasa antara lain:
- Deteksi kesalahan lebih dini: Sebagian besar bug tipe ditemukan saat compile, bukan setelah aplikasi dipakai. Ini mengurangi kesalahan yang sampai ke pengguna.
- Bantuan editor yang lebih pintar: Karena editor tahu tipe setiap variabel, fitur autocomplete dan saran kode menjadi jauh lebih akurat. Anda mengetik lebih sedikit dan salah lebih jarang.
- Kode lebih mudah dirawat: Pada proyek yang dikerjakan banyak orang, tipe berfungsi sebagai kontrak yang jelas antar bagian kode. Developer baru lebih cepat memahami struktur data yang berlaku.
- Dokumentasi yang hidup: Anotasi tipe sekaligus menjadi keterangan. Dengan melihat sebuah fungsi, Anda langsung tahu ia menerima data seperti apa dan mengembalikan apa, tanpa perlu menebak.
Kelebihan-kelebihan ini menjelaskan kenapa library dan framework populer, seperti React, menyediakan dukungan TypeScript yang matang. Angular bahkan melangkah lebih jauh dengan menjadikan TypeScript sebagai bahasa utamanya sejak awal.
Kekurangan dan Hal yang Perlu Anda Pertimbangkan
Menyajikan hanya kelebihan akan menyesatkan. TypeScript juga memiliki sisi yang perlu dipertimbangkan sebelum Anda memakainya.
- Ada langkah compile tambahan: JavaScript bisa langsung dijalankan, sedangkan TypeScript menuntut tahap compile. Untuk proyek kecil, langkah ekstra ini kadang terasa merepotkan.
- Kurva belajar di awal: Anda perlu memahami konsep tipe, interface, dan pesan error dari compiler. Bagi yang baru mengenal pemrograman, ini menambah beban belajar di samping JavaScript itu sendiri.
- Urusan tipe untuk pustaka pihak ketiga: Tidak semua library lama menyediakan informasi tipe. Kadang Anda perlu memasang paket tipe terpisah atau menulis definisinya sendiri.
- Lebih banyak kode untuk ditulis: Anotasi tipe menambah baris. Pada proyek yang sangat sederhana, tambahan ini bisa terasa tidak sepadan dengan manfaatnya.
Poin penting: TypeScript tidak membuat program Anda berjalan lebih cepat. Semua pemeriksaan tipe hilang saat kode diterjemahkan ke JavaScript, sehingga hasil akhirnya sama cepatnya dengan JavaScript biasa. Manfaat TypeScript ada di proses pengembangan, bukan pada performa saat aplikasi berjalan.
Kapan Anda Perlu TypeScript, Kapan Tidak
Karena ada untung dan ada biayanya, keputusan memakai TypeScript sebaiknya menyesuaikan konteks. Sebagai panduan konkret, TypeScript layak Anda pakai ketika:
- Proyek diperkirakan tumbuh besar, misalnya di atas beberapa ribu baris kode.
- Dikerjakan oleh tim, terutama lebih dari dua orang, sehingga kejelasan struktur data jadi penting.
- Aplikasi akan dirawat dalam jangka panjang, bukan sekali jadi lalu ditinggalkan.
Sebaliknya, JavaScript biasa sudah memadai untuk skrip sekali pakai, halaman sederhana dengan sedikit interaksi, atau prototipe cepat yang hanya untuk menguji ide. Untuk kasus semacam ini, tambahan proses compile dan anotasi tipe kerap lebih menghambat daripada menolong.
Kabar baiknya, keputusan ini tidak bersifat permanen. Karena setiap kode JavaScript sudah merupakan TypeScript yang sah, Anda bisa memulai dengan JavaScript dan menambahkan tipe secara bertahap ketika proyek mulai membesar. Adopsi tidak harus dilakukan sekaligus.
Cara Mulai Belajar TypeScript
Kalau Anda tertarik mencoba, memulainya cukup mudah. Berikut langkah paling ringkas untuk belajar TypeScript dari nol.
Langkah #1: Coba Dulu Tanpa Instalasi
Sebelum memasang apa pun, buka TypeScript Playground di situs resmi typescriptlang.org. Ini adalah editor daring tempat Anda bisa menulis TypeScript dan langsung melihat JavaScript hasil terjemahannya di sebelahnya. Cara ini paling cepat untuk merasakan bagaimana tipe bekerja tanpa menyiapkan apa pun di komputer.
Langkah #2: Instal TypeScript di Komputer
Ketika sudah siap serius, TypeScript diinstal lewat npm, pengelola paket bawaan Node.js. Pastikan Node.js sudah terpasang, lalu jalankan perintah berikut di terminal:
npm install -g typescriptPerintah -g memasang TypeScript secara global sehingga bisa dipakai di seluruh proyek. Untuk memastikan pemasangan berhasil, periksa versinya:
tsc --versionKalau terminal menampilkan nomor versi, berarti compiler sudah siap dipakai.
Langkah #3: Compile Berkas Pertama
Buat sebuah berkas bernama app.ts, isi dengan sedikit kode TypeScript, lalu terjemahkan menjadi JavaScript dengan perintah:
tsc app.tsPerintah ini menghasilkan berkas app.js di folder yang sama. Berkas itulah yang Anda jalankan di browser atau dengan Node.js. Setelah nyaman dengan alur menulis, compile, dan menjalankan ini, Anda sudah memegang fondasi utama TypeScript.
Pertanyaan yang Sering Muncul
Apakah TypeScript sebuah framework? Bukan. TypeScript adalah bahasa pemrograman, bukan framework. Framework menyediakan kerangka dan aturan untuk membangun aplikasi, sedangkan TypeScript hanya menambahkan sistem tipe pada JavaScript. TypeScript justru sering dipakai bersama framework seperti React, Angular, atau Vue.
Apakah TypeScript menggantikan JavaScript? Tidak. TypeScript dibangun di atas JavaScript dan pada akhirnya diterjemahkan kembali menjadi JavaScript. Keduanya berjalan berdampingan, bukan saling menggantikan.
Apakah harus jago JavaScript dulu sebelum belajar TypeScript? Sangat disarankan. Karena TypeScript adalah JavaScript ditambah sistem tipe, memahami dasar JavaScript lebih dulu membuat konsep TypeScript jauh lebih mudah dicerna.
Apakah TypeScript membuat aplikasi lebih lambat? Tidak. Seluruh informasi tipe hilang saat kode di-compile menjadi JavaScript, sehingga performa aplikasi yang berjalan sama dengan JavaScript biasa. Manfaat TypeScript terasa saat menulis kode, bukan saat aplikasi dijalankan.
Kesimpulan
TypeScript adalah superset JavaScript buatan Microsoft yang menambahkan sistem tipe statis, sehingga banyak kesalahan tertangkap saat kode ditulis, bukan setelah sampai ke pengguna. Kode TypeScript tidak dijalankan langsung, melainkan di-compile dulu menjadi JavaScript biasa yang barulah dieksekusi browser atau Node.js.
Karena bersifat superset, TypeScript bisa diadopsi secara bertahap tanpa membuang kode JavaScript yang sudah ada. Ia paling bermanfaat untuk proyek yang tumbuh besar dan dikerjakan bersama tim, sementara untuk skrip kecil JavaScript biasa sering kali sudah cukup. Menimbang keduanya berdasarkan skala dan umur proyek akan membantu Anda mengambil keputusan yang tepat.
Semoga artikel ini membantu.




