प्रौद्योगिकी

TypeScript 7.0: 10 गुना तेज़ — लेकिन Vue, Svelte और Angular को करना होगा इंतज़ार

Adrian Kessler

VS Code के अंदर TypeScript कंपाइलर को पहले एडिटर के अपने कोडबेस की ताज़ा कॉपी जांचने में 125 सेकंड लगते थे। TypeScript 7.0 वही काम 10.6 सेकंड में करता है। माइक्रोसॉफ्ट ने पुराने कोड को ऑप्टिमाइज़ नहीं किया — बल्कि पूरे कंपाइलर रनटाइम को JavaScript से Go में पोर्ट कर दिया, जिससे मल्टी-कोर समानांतरता (parallelism) अनलॉक हो गई जो JavaScript इंजन प्रदान नहीं कर सकता।

यह पोर्ट कोई ज़मीन से नई लिखाई नहीं है। माइक्रोसॉफ्ट के इंजीनियरों ने टाइप-चेकिंग लॉजिक को TypeScript 6.0 के समान बताया — वही नियम, वही व्यवहार, बस एक ऐसी भाषा में अनुवादित जो काम को CPU कोर में बाँट सके। टीम ने Go को इसलिए चुना क्योंकि मूल फंक्शन-भारी JavaScript कोडबेस लगभग एक-से-एक Go के मुहावरों में ढल गया। नए रनटाइम में समानांतरता को स्पष्ट रूप से नियंत्रित करने के लिए फ्लैग भी हैं: आधुनिक वर्कस्टेशन पर --checkers 8 पास करने से VS Code बिल्ड में TypeScript 6.0 की तुलना में 16.7 गुना सुधार आता है। Slack की CI टाइप-चेकिंग 7.5 मिनट से घटकर 1.25 मिनट रह गई। Bluesky का बिल्ड 24.3 सेकंड से 2.8 सेकंड पर आ गया। यह पैटर्न सभी कोडबेस पर लागू होता है: जैसे-जैसे प्रोजेक्ट का आकार बढ़ता है, लाभ और बढ़ता है, क्योंकि अब सीमा हार्डवेयर है, रनटाइम नहीं।

TypeScript 7.0 बिना किसी सार्वजनिक प्रोग्रामेटिक API के आता है — वह इंटरफ़ेस जिसका उपयोग बिल्ड टूल्स कंपाइलर को अपने कोड से कॉल करने के लिए करते हैं। हर प्रमुख वेब फ्रेमवर्क का टेम्पलेट टाइप-चेकर इसी API पर निर्भर है। Vue का Volar टूलिंग, Svelte का लैंग्वेज सर्विस, MDX, Angular का टेम्पलेट चेकर: इनमें से कोई भी TypeScript 7.0 के साथ काम नहीं करता। ts-morph और ts-jest जैसे टूल, जो रिफैक्टरिंग और टेस्टिंग के लिए TypeScript कंपाइलर इंटर्नल्स को उजागर करते हैं, वे भी टूट गए हैं। माइक्रोसॉफ्ट ने पुष्टि की है कि बदली हुई API TypeScript 7.1 में आने वाली है, जो अक्टूबर में अपेक्षित है। जो प्रोजेक्ट इनमें से किसी भी फ्रेमवर्क या टूल का उपयोग करते हैं, उन्हें अभी अपग्रेड नहीं करना चाहिए।

पुराने प्रोजेक्ट कॉन्फ़िगरेशन के लिए अलग-अलग कड़े रुकावटें हैं। TypeScript 7.0 उन विकल्पों को, जिन्हें संस्करण 6.0 ने पदावनत (deprecated) कर दिया था, अब सीधे बिल्ड एरर बना देता है: ES5 कम्पाइलेशन टारगेट, AMD और SystemJS मॉड्यूल फॉर्मेट, क्लासिक मॉड्यूल रिज़ॉल्यूशन, और import स्टेटमेंट पर assert कीवर्ड — ये सभी बिल्ड को तुरंत फेल कर देते हैं। नया डिफ़ॉल्ट tsconfig.json अब @types पैकेज को ऑटो-लोड नहीं करता, जिसका अर्थ है कि जो प्रोजेक्ट बिना स्पष्ट रूप से अपने टाइप डिपेंडेंसी बताए एम्बिएंट टाइप डिस्कवरी पर निर्भर थे, वे इम्पोर्ट टाइम पर चुपचाप फेल हो जाएँगे। माइक्रोसॉफ्ट उन प्रोजेक्ट्स के लिए एक typescript@npm:@typescript/typescript6 संगतता शिम (compatibility shim) प्रदान करता है जिन्हें नए कंपाइलर के साथ TS6 टूलिंग चालू रखने की आवश्यकता है।

जो प्रोजेक्ट इन बाधाओं को पार कर लेते हैं — सादे Node.js या Deno ऐप्लिकेशन, ब्राउज़र ऐप जो फ्रेमवर्क टेम्पलेट सिस्टम पर नहीं बने हैं, और ऐसी लाइब्रेरी जिनमें प्रोग्रामेटिक API डिपेंडेंसी नहीं है — वे एक ही package.json बदलाव से अपग्रेड कर सकते हैं। एडिटर सपोर्ट भी उसी विभाजन का अनुसरण करता है: VS Code के लिए अब एक समर्पित TypeScript 7 एक्सटेंशन उपलब्ध है, और बिल्ट-इन सपोर्ट Language Server Protocol में माइग्रेट हो रहा है, जो पुराने TSServer डिज़ाइन की जगह ले रहा है। WebStorm और अन्य एडिटर जो TSServer पर निर्भर थे, अभी उस संक्रमण से गुज़र रहे हैं।

TypeScript 7.1, जो वर्तमान में अक्टूबर 2026 के लिए लक्षित है, उसमें नया कंपाइलर API शिप होगा जिसकी आवश्यकता Vue, Svelte, Angular और MDX टूलिंग को अपग्रेड करने से पहले होगी। जब यह आएगा, तब 15-महीने के Go पोर्ट से मिले प्रदर्शन लाभ पूरे इकोसिस्टम तक पहुँचेंगे। तब तक, Volar, SvelteKit और Angular के प्रोजेक्ट पेज TypeScript 6.0.x पर रुके रहने की सलाह देते हैं।

टैग: , , ,

चर्चा

0 टिप्पणियाँ हैं।