मैं TypeScript को कैसे बेचता हूँ (Sales Pitch)
(2ality.com)- TypeScript, JavaScript में type information जोड़ने वाली language है
- JS engine द्वारा execute होने से पहले type information हटा दी जाती है → यानी, लिखने और deploy करने की process में अतिरिक्त काम चाहिए
- क्या वह अतिरिक्त काम मूल्यवान है? → पूरी तरह मूल्यवान है
ऑटो-कम्प्लीशन और code edit करते समय error detection
- TypeScript, code लिखते समय auto-completion और error detection देता है
- उदाहरण 1: typo, गलत type, missing argument
- मौजूद न होने वाली property access करने पर error दिखता है. Auto-completion में भी नहीं दिखती
- गलत type के method call पर error दिखता है
- required argument छूट जाने पर error दिखता है
- गलत type का argument pass करने पर error दिखता है
- उदाहरण 2: function return value error
- अगर return value, defined type से match नहीं करती तो error दिखता है
- उदाहरण के लिए, return value
string[]है लेकिन return typestringके रूप में define किया गया है, तो error होगा
- उदाहरण 3: optional property handling error
- optional property को return value की तरह इस्तेमाल करने पर type match न करे तो error दिखता है
- उदाहरण 4: switch statement में case छूटना
- अगर switch statement के सभी case handle नहीं किए गए हों तो error होता है
- बची हुई value का
nevertype होना चाहिए — इस requirement का उल्लंघन होने पर error होता है
- उदाहरण 5: code में किसी खास case को handle करने में error
- किसी specific value के आधार पर branching करते समय गलत case पर error होता है
- उदाहरण के लिए, किसी खास object type में मौजूद न होने वाली property access करने पर error होगा
function parameters और return types को स्पष्ट लिखना → अच्छी documentation का काम
- TypeScript में function parameters और return types को स्पष्ट रूप से लिखा जा सकता है
- इससे code की समझ और maintainability बेहतर होती है
- function के arguments और return values किस type के हैं, यह साफ़ दिखाई देता है
code refactoring को मज़बूती
- TypeScript, code refactoring को ज़्यादा सुरक्षित तरीके से करने में मदद करता है
- method name बदलने पर उससे जुड़े सभी code में बदलाव सुरक्षित रूप से reflect होते हैं
- code के आपसी संबंधों को अधिक सटीक रूप से समझा जा सकता है
TypeScript का उपयोग अब और आसान
- TypeScript को चलाना और compile करना आसान हो गया है
- Node.js, Deno, Bun जैसे platforms पर TypeScript को सीधे चलाया जा सकता है
- Vite जैसे bundlers में TypeScript का default support है
- type stripping तकनीक आई है → इसमें सिर्फ type information हटती है, कोई और transformation नहीं होता
- npm package distribution बेहतर हुई है → JavaScript और type declaration files के automatic generation का support
TypeScript की कमियाँ
- learning curve है → JavaScript से अधिक complex है
- कुछ npm packages में type definitions न हों या गलत हों तो समस्या आ सकती है
tsconfig.jsonconfiguration complex हो सकती है- जितना संभव हो उतनी strict settings रखने से समस्या कम हो सकती है
- type stripping के स्पष्ट होने से
tsconfig.jsonकी भूमिका सरल हो रही है
TypeScript FAQ
क्या TypeScript code बहुत भारी हो जाता है?
- TypeScript, type inference के जरिए बहुत कम type definitions के साथ भी code लिखने देता है
- complex type annotations के बिना भी यह उपयोगी ढंग से काम कर सकता है
क्या TypeScript, JavaScript को C# या Java में बदलना चाहता है?
- शुरुआती दौर में JavaScript की कमियों को पूरा करने के लिए classes, modules, enums आदि जोड़े गए थे
- अब TypeScript को ECMAScript standard के अनुरूप बेहतर बनाया जा रहा है
- जो features JavaScript में नहीं हैं, वे TypeScript में नहीं जोड़े जाते
क्या TypeScript केवल object-oriented programming (OOP) को support करता है?
- TypeScript, functional programming patterns को भी अच्छी तरह support करता है
- उदाहरण के लिए,
discriminated unionfunctional programming में अक्सर इस्तेमाल होता है
क्या complex type definitions ज़रूर सीखनी पड़ती हैं?
- ज़्यादातर TypeScript उपयोग के लिए simple type definitions ही काफ़ी हैं
- complex type definitions library लिखते समय उपयोगी हैं, लेकिन सामान्य उपयोग में उनकी ज़रूरत नहीं होती
TypeScript सीखने में कितना समय लगता है?
- basic concepts एक दिन में सीखे जा सकते हैं
- simple code लिखना और debugging अगले दिन से संभव है
- धीरे-धीरे complex types और advanced features सीखे जा सकते हैं
आगे पढ़ने के लिए
- What is TypeScript?
- Tackling TypeScript (मुफ़्त)
4 टिप्पणियां
strong typing के फायदे होते हैं, C++ में भी यही बात लागू होती है
JavaScript से TypeScript पर स्विच करना ऐसा लगता है जैसे आंखें बंद करके डेवलपमेंट कर रहे थे और अब आंखें खुल गई हों। types से मिलने वाला भरोसा, auto-completion, और Copilot के साथ इसका कॉम्बिनेशन।
हमारी कंपनी की टीमें यह कहकर प्रोजेक्ट करती रहीं कि JavaScript ही काफ़ी है, लेकिन अब वे सब TypeScript में पूरी तरह migrate कर रही हैं
JavaScript को replace करने के बजाय उसे complement करना—मुझे लगता है कि यही TypeScript की वह सफलता का कारण है जिसकी वजह से उसने Dart पर बढ़त बनाई। सच में लगता है कि इसे सीखना बहुत सही फैसला था।