𝗡𝗼𝗱𝗲.𝗷𝘀 𝟮𝟰 𝗡𝗮𝘁𝗶𝘃𝗲 𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁
बिल्ड स्टेप का दौर लगभग खत्म हो गया है।
Node.js 24 अब नेटिव रूप से TypeScript को सपोर्ट करता है। अब आप बिना किसी बिल्ड स्टेप के प्रोडक्शन में .ts फाइलें चला सकते हैं। यह आपके कोड और उसके निष्पादन (execution) के बीच की बाधाओं को दूर करता है।
यह कैसे काम करता है: रनटाइम आपके TypeScript सिंटैक्स को पार्स (parse) करता है। यह लोड टाइम पर टाइप एनोटेशन (type annotations) को हटा देता है। इसके बाद यह परिणामी JavaScript को निष्पादित (execute) करता है।
इस बदलाव से जुड़े मुख्य तथ्य:
- यह टाइप चेकिंग (type checking) नहीं करता है।
- यह .d.ts फाइलें जेनरेट नहीं करता है।
- यह TypeScript को एनोटेटेड JavaScript की तरह मानता है।
- रनटाइम निष्पादन से पहले एनोटेशन को हटा देता है।
यह आपके डिप्लॉयमेंट (deployment) को सरल बनाता है। अब आपको डिप्लॉयमेंट के लिए tsc आउटपुट डायरेक्टरी या जटिल सोर्स मैप कॉन्फ़िगरेशन को मैनेज करने की आवश्यकता नहीं है। आपका सोर्स कोड ही आपका एकमात्र विश्वसनीय स्रोत (single source of truth) बन जाता है।
इन सीमाओं का ध्यान रखें:
- रनटाइम पर कोई टाइप चेकिंग नहीं। गलतियों को पकड़ने के लिए आपको अभी भी अपने CI पाइपलाइन में tsc --noEmit चलाना होगा।
- tsconfig.json पाथ मैपिंग (path mappings) के लिए कोई सपोर्ट नहीं है।
- डेकोरेटर्स (decorators) या कस्टम ट्रांसफॉर्मर्स के लिए कोई सपोर्ट नहीं है।
- टाइप स्ट्रिपिंग (type stripping) के कारण कोल्ड स्टार्ट (cold starts) के दौरान प्रदर्शन (performance) में थोड़ी कमी आ सकती है।
यदि आप @/utils जैसे पाथ एलियास (path aliases) का उपयोग करते हैं, तो आपको अभी भी एक बंडलर (bundler) या esbuild की आवश्यकता होगी।
इसका उपयोग कैसे करें: आप अपने सर्वर को सीधे Node के साथ चला सकते हैं: node src/server.ts
बेहतर डिबगिंग के लिए, source maps फ्लैग का उपयोग करें: node --enable-source-maps src/server.ts
यह सरल डिपेंडेंसी ग्राफ वाले माइक्रोसर्विसेज (microservices) के लिए एक बेहतरीन विकल्प है। इससे आपको डिप्लॉयमेंट में गति मिलती है। हालाँकि, यदि आपको भारी ऑप्टिमाइज़ेशन या मिनिफिकेशन (minification) की आवश्यकता है, तो पारंपरिक बिल्ड पाइपलाइन का ही उपयोग करें।
लक्ष्य टूल को आपकी विशिष्ट आवश्यकताओं के अनुरूप बनाना है।