TypeScript 7.0 Beta जारी - Go native porting से TS लगभग 10 गुना तेज
- मौजूदा TypeScript compiler का Go में port किया गया नया native implementation
- “beta” होने के बावजूद यह इतना stable बताया गया है कि इसे रोज़मर्रा के काम और CI में तुरंत आज़माया जा सकता है
- नया codebase rewrite नहीं है, बल्कि मौजूदा implementation का व्यवस्थित port है
- type check logic संरचनात्मक रूप से TypeScript 6.0 के समान है
- TypeScript 6.0 की तुलना में कई बार लगभग 10 गुना तेज performance
- native code performance + shared memory parallelization पर आधारित
- Microsoft के अंदर और बाहर, लाखों LOC वाले codebase में पहले से उपयोग में
- Bloomberg, Canva, Figma, Google, Linear, Notion, Slack, Vercel आदि के साथ pre-testing
- सिर्फ CLI नहीं, editor experience भी अधिक हल्का और तेज बनाया गया
उपयोग का तरीका
- फिलहाल इसे अलग package के रूप में install करना होगा
npm install -D @typescript/native-preview@beta
- मौजूदा
tsc की जगह tsgo चलाएं
- आगे stable version फिर से
typescript package और tsc entrypoint के रूप में वितरित किया जाएगा
TypeScript 6.0 के साथ समानांतर उपयोग
- 7.0 Beta को
@typescript/native-preview + tsgo के रूप में उपलब्ध कराया गया है
- मौजूदा
tsc और tsgo को साथ-साथ चलाकर तुलना की जा सकती है
- stable version में TS7 फिर से
tsc नाम का उपयोग करेगा
- TS6 compatibility के लिए
@typescript/typescript6 package भी उपलब्ध है
- TypeScript API पर निर्भर मौजूदा tools फिलहाल TS6 API के साथ चलते रह सकते हैं
महत्वपूर्ण सीमाएँ
- 7.0 Beta production-ready के काफ़ी करीब है, लेकिन stable programmatic API अभी उपलब्ध नहीं है
- stable API का लक्ष्य कम से कम TypeScript 7.1 के बाद, यानी कुछ महीनों में है
- जो tools/plugins सीधे TypeScript API पर निर्भर हैं, उन्हें migration में सावधानी रखनी होगी
Parallelization
- parsing, type check, emit जैसी कई stages को parallel किया गया है
- type check worker की संख्या नियंत्रित करने के लिए
--checkers option जोड़ा गया
- project reference build को parallel करने के लिए
--builders option जोड़ा गया
- single-threaded execution के लिए
--singleThreaded option जोड़ा गया
- बड़े codebase और monorepo में इसका असर अधिक है, लेकिन parallelism बढ़ाने पर memory usage भी बढ़ सकता है
TypeScript 6.0 आधारित compatibility
- TypeScript 7.0 का लक्ष्य TypeScript 6.0 के type check/CLI behavior के साथ compatibility रखना है
- TS6 में clean compile होने वाला code, TS7 में भी उसी तरह compile होना लक्ष्य है
- हालांकि TS6 के नए default values और deprecated features की सफ़ाई भी साथ लागू होती है
strict, module, rootDir, types आदि के default बदलाव मौजूदा project में असर दिखा सकते हैं
- खासकर
rootDir और types में बदलाव migration के समय जाँचना ज़रूरी है
- पुराने target/module settings या deprecated options इस्तेमाल करने वाले project के लिए पहले TS6 migration करना recommended है
JavaScript/JSDoc बदलाव
- JS support को TypeScript file analysis के तरीके के साथ और अधिक consistent बनाया गया है
- कुछ JSDoc/Closure style syntax और पुराने JS pattern की special handling हटा दी गई है
- JS + JSDoc आधारित codebase को अलग से verify करना होगा
Editor support
- VS Code के लिए TypeScript Native Preview extension उपलब्ध है
- CLI की ही तरह editor में भी वही performance improvements मिलते हैं
- auto-import, hover, inlay hints, code lens, JSX linked editing आदि supported हैं
- LSP आधारित होने के कारण दूसरे modern editors/tools में भी इसका उपयोग आसान है
आगे की योजना
- अधिक efficient
--watch implementation आने वाली है
- JS files के declaration emit parity पर काम किया जाएगा
- editor feature gap को कम किया जाएगा
- stable programmatic API, TypeScript 7.1 के बाद आएगी
- TypeScript 7.0 stable version का लक्ष्य लगभग 2 महीने के भीतर है
- RC उसके कुछ हफ्ते पहले जारी किया जाएगा
अभी कोई टिप्पणी नहीं है.