𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 𝟲.𝟬 𝗕𝗿𝗲𝗮𝗸𝘀 𝗕𝘆 𝗗𝗲𝘀𝗶𝗴𝗻
TypeScript 6.0 telah hadir dan mengubah segalanya. Rilis ini adalah pergeseran paling signifikan sejak versi 2.x. Jika Anda mengandalkan pengaturan lama (legacy), build Anda berikutnya kemungkinan besar akan gagal.
Tiga perubahan besar akan merusak kode Anda:
- Strict mode kini aktif secara default.
- Dukungan ES5 dan ES3 telah dihapus.
- Module resolution kini secara default menggunakan ESNext.
Mengapa ini penting:
Strict Mode Sebelumnya, Anda harus mengaktifkan strict mode secara manual. Sekarang, ini telah menjadi standar. Sekitar 70% codebase akan langsung mengalami build error (red builds). Anda akan menghadapi error untuk properti yang belum diinisialisasi, tipe any implisit, dan nilai null yang tidak diperiksa.
Penghapusan Dukungan ES5
Anda tidak lagi dapat menargetkan ES5 atau ES3 di tsconfig.json Anda. Default yang baru adalah ES2025. Jika Anda perlu mendukung browser lama, Anda harus menambahkan alat terpisah seperti Babel ke dalam pipeline Anda.
Module Resolution Default-nya bukan lagi CommonJS, melainkan ESNext. Jika proyek Node.js Anda mengandalkan perilaku CommonJS implisit, Anda harus mengatur setelan module secara eksplisit di dalam konfigurasi Anda.
Cara migrasi tanpa merusak pipeline Anda:
Audit konfigurasi Anda Jangan biarkan pengaturan terjadi secara kebetulan. Tambahkan nilai eksplisit untuk
strict,target, danmoduleditsconfig.jsonAnda sebelum melakukan upgrade.Kunci versi Anda Kunci (pin) versi TypeScript Anda di
package.json. Uji build Anda saat ini pada versi yang ada sebelum beralih ke 6.0.Gunakan feature branch Instal TypeScript 6.0 pada branch baru. Perbarui target Anda ke ES2025 dan atur tipe module Anda dengan jelas.
Perbaiki tipe secara bertahap Jalankan compiler tanpa menghasilkan file (emitting files) untuk melihat semua error. Fokuslah pada error
strictNullChecksdanimplicit anyterlebih dahulu.Uji segalanya Jalankan seluruh rangkaian pengujian (test suite) Anda. TypeScript menangkap error tipe, tetapi pengujian Anda menangkap error logika yang disebabkan oleh ketatnya aturan baru ini.
TypeScript 6.0 adalah langkah terakhir sebelum penulisan ulang versi 7.0. Versi 7.0 akan menggunakan core berbasis Go. Ini berarti dukungan legacy akan hilang sepenuhnya.
Modernisasi codebase Anda sekarang untuk menghindari krisis di kemudian hari.
Sumber: https://dev.to/davekurian/typescript-60-launches-strict-mode-by-default-and-drops-es5-support-n31