1 poin oleh doscm164 3 jam lalu | Belum ada komentar. | Bagikan ke WhatsApp

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*.json langsung di tempat — diedit dengan jsonc-parser sehingga komentar dan format tetap dipertahankan
  • Mengonversi opsi yang dihapus ke padanan TS7: target: es5ES2015, module: umd/amdESNext, moduleResolution: nodeNodeNext/Bundler, importsNotUsedAsValuesverbatimModuleSyntax, dll.
  • baseUrl dilipat ke paths
  • Menaikkan dependensi typescript ke ^7.0.0
  • Jika strict belum disetel, nilainya dikunci ke false — file yang mewarisi konfigurasi lain lewat extends tidak diubah dan hanya diberi peringatan (karena config dasar mungkin sudah menetapkan strict)
  • Hal-hal yang tidak bisa dikonversi otomatis dengan aman (runtime khusus ES5, alat berbasis API kompiler lama seperti ts-node/ts-jest, elemen array types yang 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.

Belum ada komentar.