TypeScript 7 Geçişi ESLint, ts-jest ve ts-morph'u Neden Bozuyor
TypeScript 7'nin tsgo derleyicisi 7.1'e kadar kararlı programatik API sunmuyor; ESLint, ts-jest ve ts-morph çöküyor. Geçici çözüm burada.
TypeScript 7 ile gelen tsgo, derleyicinin Go'ya satır satır portu (Project Corsa); JS tabanlı Strada'nın davranışını koruyarak gerçek OS thread'leriyle yaklaşık 10x daha hızlı derleme sunuyor. Ancak bu bir yeniden yazım değil, bir port: typescript-eslint, ts-jest, ts-morph gibi araçların dayandığı programatik API henüz hazır değil ve ancak 7.1 ile stabilize olacak.
Sonuç olarak typescript-eslint npm'de ERESOLVE hatası veriyor, zorla kurulursa typescript-estree içinde çöküyor (issue #12518, çözüm TypeScript tarafına havale edilerek kapatıldı). ts-jest, typescript paketi 6.x'te kalırken sorunsuz çalışıyor ama native-preview'a yönlendirilirse Strada'nın hâlâ dışa açılmamış iç API çağrıları yüzünden transform hataları veriyor. ts-morph ve özel AST dönüştürücüleri genelde çökmeden sessizce yanlış çıktı üretebiliyor. Proje referanslı monorepo'lar en kırılgan nokta: JSDoc @template tip parametreleri düşüyor, skipLibCheck bazı parse hatalarını bastırmıyor; incelenen 15 pipeline aracından 9'u artık var olmayan Strada API fonksiyonlarını çağırıyor.
Önerilen çözüm, typescript'i 6.x'te sabitleyip @typescript/native-preview'ı yalnızca hızlı tip kontrolü (tsgo --noEmit) için ayrı bir CI adımı olarak eklemek; typescript-eslint konfigürasyonuna dokunmadan 6.x'e karşı çözümlenmeye devam etmesini sağlamak. typescript-eslint, ts-morph veya özel transformer kullanmıyorsanız 7.0'a genel kullanılabilirlikte geçebilirsiniz; çoğu proje için bu şans yok, dolayısıyla 7.1'in kararlı API'si gelene kadar iki derleyicili kurulum mantıklı.
Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz