ts6to7 - codemod otomatis untuk migrasi TypeScript 5/6 → 7(tsgo)
(github.com/zi-gae)Kemarin TypeScript 7 resmi dirilis. Dengan kompiler native (tsgo) yang ditulis ulang dalam Go, performanya menjadi sekitar 10 kali lebih cepat, tetapi opsi kompiler yang sudah deprecated di TS5/6 semuanya dihapus, dan nilai default strict juga berubah menjadi true — sehingga proyek dengan tsconfig lama tidak bisa langsung di-upgrade begitu saja.
Saya membuat codemod untuk mengotomatiskan bagian-bagian mekanis tersebut.
npx ts6to7 --dry # pratinjau (tidak menulis apa pun)
npx ts6to7 # terapkan
Yang dikerjakan:
- Memodifikasi
tsconfig*.jsonlangsung di tempat — diedit denganjsonc-parsersehingga komentar dan format tetap dipertahankan - Mengonversi opsi yang dihapus ke padanan TS7:
target: es5→ES2015,module: umd/amd→ESNext,moduleResolution: node→NodeNext/Bundler,importsNotUsedAsValues→verbatimModuleSyntax, dll. baseUrldilipat kepaths- Menaikkan dependensi
typescriptke^7.0.0 - Jika
strictbelum disetel, nilainya dikunci kefalse— file yang mewarisi konfigurasi lain lewatextendstidak diubah dan hanya diberi peringatan (karena config dasar mungkin sudah menetapkanstrict) - Hal-hal yang tidak bisa dikonversi otomatis dengan aman (runtime khusus ES5, alat berbasis API kompiler lama seperti
ts-node/ts-jest, elemen arraytypesyang hilang, dll.) ditampilkan sebagai checklist "perlu pemeriksaan manual" yang dibatasi per file
Bisa langsung dimigrasikan dari TypeScript 5 juga: tidak perlu melewati 6. Opsi era TS5 seperti ignoreDeprecations dan prepend pada project references juga ikut dirapikan.
Monorepo juga didukung (memindai semua paket).
Saat ini versinya 0.2.0. Jika ada kasus tsconfig yang terkonversi dengan keliru, akan sangat membantu jika Anda melaporkannya melalui issue dengan melampirkan tsconfig tersebut.
Belum ada komentar.