TypeScript क्या है? गैर-डेवलपर्स के लिए सरल गाइड
TypeScript types वाला JavaScript है। आप लेबल जोड़ते हैं कि हर value किस तरह की होनी चाहिए, जैसे एक संख्या, कुछ टेक्स्ट या ऑर्डर्स की सूची, और TypeScript चलने से पहले ही आपके कोड में बेमेल की जाँच कर लेता है। TypeScript की साइट इसे "JavaScript with syntax for types" बताती है; types को सामान्य JavaScript में बदलते समय हटा दिया जाता है, और फिर वह JavaScript हर जगह चलता है जहाँ JavaScript चलता है।
AI से बनाते समय यह क्यों मायने रखता है
AI मॉडल तेज़ी से कोड लिखते हैं, और तेज़ कोड में गलतियाँ होती हैं: एक फ़ाइल में customerName और दूसरी में customer_name नाम का field, किसी कीमत को संख्या की जगह टेक्स्ट के रूप में भेजना, या किसी function को बिना किसी value के बुलाना। सादे JavaScript में इनमें से कई गलतियाँ तब दिखती हैं जब कोई गलत बटन दबाता है।
TypeScript इनमें से कई को पहले ही, कोड लिखते समय, पकड़ लेता है:
- AI को तुरंत फ़ीडबैक मिलता है। Type errors ठीक उस लाइन की ओर इशारा करते हैं जो गलत है, इसलिए एजेंट आपके देखने से पहले उसे ठीक कर सकता है।
- बदलाव सुरक्षित रहते हैं। कोई field का नाम बदलें, तो TypeScript हर उस जगह को चिह्नित करता है जहाँ पुराना नाम अब भी इस्तेमाल हो रहा है।
- कोड खुद समझाता है। Types बताते हैं कि किसी function से क्या अपेक्षित है और वह क्या लौटाता है, जो आपके, AI के और बाद में उस पर काम करने वाले किसी भी डेवलपर के लिए उपयोगी है।
- एडिटर बेहतर काम करते हैं। Autocomplete और "go to definition" बेहतर चलते हैं, क्योंकि एडिटर जानता है कि हर value क्या है।
यही एक बड़ा कारण है कि कई AI app builders TypeScript को डिफ़ॉल्ट बनाते हैं।
एक रोज़मर्रा की मिसाल
एक शिपिंग गोदाम के बारे में सोचिए जिसमें लेबल वाले बे हैं। हर बे पर एक बोर्ड है: "केवल पैलेट", "ठंडा रखें", "अधिकतम 500 किग्रा"। जब डिलीवरी आती है, तो दरवाज़े पर खड़ा एक जाँचकर्ता सामान की तुलना बोर्ड से करता है। सूखे सामान वाले बे में जाने वाली जमी हुई मछली दरवाज़े पर ही रोक ली जाती है, न कि एक हफ़्ते बाद बदबू से पता चलती है।
TypeScript वही दरवाज़े का जाँचकर्ता है। Types बोर्ड हैं। जाँच सामान, यानी आपके कोड, के इस्तेमाल में आने से पहले होती है। और जब सब कुछ अपनी जगह पर हो, तो बोर्ड हटा दिए जाते हैं: चलते हुए JavaScript में कोई type नहीं बचता।
TypeScript कैसे काम करता है
- आप (या AI)
.tsया.tsxफ़ाइलें लिखते हैं — TypeScript, type लेबल के साथ। - Type checker कोड पढ़ता है और बेमेल को एडिटर या build में errors के रूप में दिखाता है।
- Build step types हटाता है, और सामान्य JavaScript बनाता है।
- JavaScript चलता है browser में या server पर (Node.js, Deno, Bun)।
एक ज़रूरी नतीजा: TypeScript उस कोड की जाँच करता है जो आपने लिखा है, न कि वह डेटा जो ऐप चलते समय आता है। अगर कोई बाहरी API कुछ अप्रत्याशित लौटाता है, तो runtime validation जोड़े बिना TypeScript उसे नहीं देख सकता।
एक उदाहरण: बुकिंग फ़ॉर्म
मान लीजिए आप एक हेयर सैलून की बुकिंग ऐप बना रहे हैं। एक बुकिंग का type ऐसा है:
type Booking = {
id: number;
customerEmail: string;
service: "haircut" | "colour" | "blow-dry";
startsAt: Date;
price: number;
notes?: string; // the ? means optional
};
और एक function जो deposit निकालता है:
function depositFor(booking: Booking): number {
return booking.price * 0.2;
}
अब देखिए TypeScript क्या पकड़ता है।
गलत लिखा field।
depositFor({ id: 1, customerEmail: "lena@example.com", service: "haircut",
startsAt: new Date(), prise: 40 });
TypeScript बताता है कि prise कोई ज्ञात property नहीं है और price गायब है। सादे JavaScript में यह चुपचाप NaN (यानी संख्या नहीं) deposit निकाल देता।
गलत प्रकार की value।
const booking: Booking = { ...otherFields, price: "40" };
TypeScript बताता है कि जहाँ संख्या चाहिए वहाँ string नहीं चल सकती। इसके बिना "40" * 0.2 संयोग से काम कर जाता, पर "40" + 5 देता है "405", वह तरह की गलती जो इनवॉइस पर दिखती है।
ऐसी सेवा जो मौजूद नहीं।
const booking: Booking = { ...otherFields, service: "perm" };
TypeScript बताता है कि "perm" अनुमत सेवाओं में से नहीं है। जब सैलून बाद में perms जोड़ता है, तो आप उसे type में जोड़ते हैं, और TypeScript हर उस जगह को दिखाता है जिसे अपडेट करना है: प्राइस लिस्ट, फ़ॉर्म, कैलेंडर के रंग।
यह क्या नहीं पकड़ सकता। अगर बुकिंग फ़ॉर्म ब्राउज़र से server को price: "40" भेजता है, तो server पर TypeScript उसे रनटाइम पर नहीं देखता। इसीलिए अच्छी तरह बनी ऐप्स आने वाले डेटा को भी validate करती हैं, अक्सर किसी validation library से, जो उसका आकार जाँचती है और उसे सही Booking में बदलती है।
TypeScript बनाम JavaScript
| JavaScript | TypeScript | |
|---|---|---|
| यह क्या है | भाषा जिसे browsers चलाते हैं | JavaScript प्लस type syntax |
| Browsers में सीधे चलता है | हाँ | पहले JavaScript में बदला जाता है |
| Type गलतियाँ पकड़ता है | रनटाइम पर, अगर पकड़ता है | लिखते समय, चलाने से पहले |
| सेटअप | कुछ नहीं | एक build step (आमतौर पर Vite या Next.js जैसे टूल संभालते हैं) |
| किसके लिए अच्छा | छोटी स्क्रिप्ट्स, त्वरित प्रयोग | ऐसी ऐप्स जो बढ़ेंगी और बदलेंगी |
| File extensions | .js, .jsx | .ts, .tsx |
सामान्य शब्दों की व्याख्या
| शब्द | मतलब |
|---|---|
| Type | बताना कि कोई value क्या हो सकती है: संख्या, टेक्स्ट, या किसी object का खास आकार। |
| Type annotation | कोड में लिखा लेबल, जैसे price: number। |
| Type inference | बिना लेबल के TypeScript का खुद type निकाल लेना। |
| Interface / type alias | object के आकार का नाम दिया हुआ विवरण, जैसे Booking। |
| Union type | ऐसी value जो कई विकल्पों में से एक हो सकती है, जैसे "haircut" | "colour"। |
| Optional property | ऐसा field जो गायब हो सकता है, ? से चिह्नित। |
any | ऐसा type जो किसी value की जाँच बंद कर देता है, एक आपातकालीन रास्ता जिसे कम इस्तेमाल करें। |
| Type error | TypeScript की रिपोर्ट कि कुछ मेल नहीं खाता। |
| Compile / transpile | TypeScript को JavaScript में बदलना। |
.tsx | TypeScript फ़ाइल जिसमें JSX है, जो React ऐप्स में इस्तेमाल होती है। |
tsconfig.json | प्रोजेक्ट की जाँच कितनी सख्ती से हो, यह बताने वाली सेटिंग फ़ाइल। |
| Runtime validation | ऐप चलते समय असली आने वाले डेटा की जाँच। |
आम गलतियाँ और गलतफ़हमियाँ
- "TypeScript कोड को बग-फ़्री बना देता है।" यह डेटा के आकार में बेमेल पकड़ता है, गलत logic नहीं। 20% की जगह 2% deposit बिना किसी type error के सही चलेगा।
- "Types मुझे गलत input से बचाते हैं।" Types रनटाइम पर गायब हो जाते हैं। यूज़र्स, फ़ॉर्म और APIs से आने वाले डेटा को validate करें।
- हर जगह
any। जब AI अटक जाता है, तो वह errors दबाने के लिएanyया// @ts-ignoreपकड़ सकता है। यह समस्या ठीक करने के बजाय उसे छिपा देता है। - preview चलने के कारण type errors को नज़रअंदाज़ करना। कुछ टूल type errors वाले कोड को भी चला देते हैं। फिर भी वे errors आगे चलकर बग बनने का इंतज़ार कर रही बातें हैं।
- "TypeScript धीमा होता है।" types चलाने से पहले हटा दिए जाते हैं; जो JavaScript चलता है वह लगभग वही होता है।
- "यह सिर्फ़ बड़ी टीमों के लिए है।" अकेले बिल्डर्स को भी फ़ायदा होता है, खासकर जब AI अधिकतर बदलाव कर रहा हो।
AI builder से क्या माँगें
- "TypeScript strict mode चालू रखकर इस्तेमाल करें।"
- "हमारे मुख्य रिकॉर्ड्स — Customer, Booking, Invoice — के लिए साझा types परिभाषित करें और उन्हें frontend और backend दोनों पर इस्तेमाल करें।"
- "Errors से बचने के लिए
anyया@ts-ignoreइस्तेमाल न करें; असली समस्या ठीक करें और बताएँ कि वह क्या थी।" - "सर्वर पर आने वाले सारे डेटा को सिर्फ़ types से नहीं, validation से भी जाँचें।"
- "Type checker चलाएँ और यह कहने से पहले हर error ठीक करें कि काम पूरा हो गया।"
- "जब कोई field का नाम बदलें, तो TypeScript जहाँ-जहाँ चिह्नित करे, वहाँ सब अपडेट करें।"
- "इस type error को सरल भाषा में समझाएँ।"
AI से बनाए कोड की जाँच के बारे में जानने के लिए AI से बनाए कोड की समीक्षा कैसे करें और AI से बनी ऐप को कैसे डीबग करें पढ़ें।
Mythex में TypeScript
जब आप कुछ खास नहीं माँगते, तो Mythex नए प्रोजेक्ट Vite + React + TypeScript + Tailwind पर शुरू करता है। कोड एडिटर में language intelligence है, जिसमें TypeScript और JavaScript के लिए completions, diagnostics और go-to-definition शामिल हैं, और कई अन्य भाषाएँ भी। इसलिए type errors केवल preview में नहीं, कोड में भी दिखते हैं। एडिटर Free पर केवल पढ़ने के लिए है और Pro पर पूरी तरह संपादन योग्य। अपनी पहली प्रॉम्प्ट में आप अलग सेटअप माँग सकते हैं; docs का पेज कि तकनीक कैसे चुनी जाती है बताता है कि यह कैसे होता है, और code editor docs बताते हैं कि एडिटर क्या दिखाता है।
सवाल
सरल शब्दों में TypeScript क्या है?
TypeScript types वाला JavaScript है। आप बताते हैं कि हर value किस तरह का डेटा होनी चाहिए, जैसे कोई संख्या, टेक्स्ट या ग्राहक रिकॉर्ड, और TypeScript कोड चलने से पहले उसमें बेमेल जाँचता है। फिर उसे सादे JavaScript में बदला जाता है।
क्या TypeScript, JavaScript से अलग भाषा है?
यह JavaScript का superset है: JavaScript के साथ types के लिए अतिरिक्त syntax। TypeScript की साइट इसे "JavaScript with syntax for types" बताती है। चलाने के लिए कोड को JavaScript में बदलते समय types हटा दिए जाते हैं।
AI app builders TypeScript क्यों इस्तेमाल करते हैं?
Types AI और उसके आसपास के टूल्स को गलतियाँ जल्दी पकड़ने का तरीका देते हैं, जैसे किसी संख्या की जगह टेक्स्ट भेजना या किसी field का नाम गलत लिखना। गलतियाँ यूज़र के सामने आने से पहले दिख जाती हैं, जिससे AI के बनाए कोड की जाँच और बदलाव आसान होते हैं।
क्या TypeScript ऐप को बग-फ़्री बना देता है?
नहीं। यह डेटा के आकार से जुड़ी गलतियों की एक पूरी श्रेणी पकड़ता है, पर गलत business logic नहीं पकड़ता, और यूज़र्स या APIs से रनटाइम पर आने वाला डेटा तब तक नहीं जाँचता जब तक आप validation न जोड़ें।
TypeScript किसने बनाया?
TypeScript एक open-source भाषा है जिसे Microsoft ने विकसित किया है। यह वहाँ चलती है जहाँ JavaScript चलता है, जिसमें browsers, Node.js, Deno और Bun शामिल हैं।