मुख्य सामग्री पर जाएँ
Tooletto

TypeScript फ़ॉर्मेटर

JavaScript फ़ॉर्मेटर का एक प्रीसेट

टाइप एनोटेशन, जेनेरिक, डेकोरेटर और इंटरफ़ेस के पूरे सपोर्ट के साथ TypeScript फ़ॉर्मेट करें। JavaScript की बजाय TypeScript पार्सर इस्तेमाल करता है, तो टाइप सिंटैक्स को एरर मानने की बजाय समझा जाता है।

  • फ़ाइलें कभी आपकी डिवाइस से बाहर नहीं जातीं
  • मुफ़्त, बिना साइन-अप
  • कोई वॉटरमार्क नहीं
  • लोड होने के बाद ऑफ़लाइन भी काम करता है
Loading tool…

JavaScript फ़ॉर्मेटर कैसे करें

  1. 1

    अपना कोड पेस्ट करें

    JavaScript, TypeScript या JSX।

  2. 2

    अपनी स्टाइल तय करें

    इंडेंटेशन, सेमीकोलन और कोटेशन पसंद।

  3. 3

    नतीजा कॉपी करें

    बिल्कुल वैसे फ़ॉर्मेट किया जैसे Prettier आपके एडिटर में करता।

TypeScript को JavaScript का इस्तेमाल फिर से करने की बजाय अपने ख़ुद के पार्सर की ज़रूरत क्यों है

TypeScript, JavaScript का एक सुपरसेट है, लेकिन इसमें जोड़ी गई टाइप-स्तरीय सिंटैक्स — इंटरफ़ेस, `extends` से सीमित जेनेरिक, डेकोरेटर, `as` टाइप असर्शन, और स्वतंत्र सिर्फ़-टाइप डिक्लेरेशन — सादी JavaScript व्याकरण में कोई मतलब नहीं रखती और इसकी वजह से सिर्फ़-JavaScript पार्सर बिल्कुल वैध TypeScript पर सीधे फ़ेल हो जाता है। JavaScript के पार्सर को उसकी अपनी व्याकरण का एक सुपरसेट स्वीकार करने पर मजबूर करने की कोशिश की बजाय TypeScript के समर्पित पार्सर का इस्तेमाल करना यही चीज़ है जो जेनेरिक और इंटरफ़ेस से भरी किसी फ़ाइल को सिंटैक्स एरर के रूप में रिजेक्ट होने की बजाय सही तरीक़े से फ़ॉर्मेट होने देती है, ठीक उस पल जब यह ऐसा फ़ीचर इस्तेमाल करती है जो ख़ुद JavaScript में नहीं है।

ख़ास तौर पर TypeScript के अंदर JSX

कोई `.tsx` फ़ाइल जो JSX सिंटैक्स को TypeScript टाइप एनोटेशन के साथ मिलाती है, एक ख़ास बिंदु पर पार्स करने के लिए वाक़ई अस्पष्ट है: `<Foo>value` जैसा एंगल-ब्रैकेट टाइप असर्शन किसी ऐसे पार्सर के लिए JSX एलिमेंट टैग की शुरुआत जैसा बिल्कुल एक जैसा दिखता है जिसे नहीं बताया गया कि यह कौन सी बोली पढ़ रहा है। TypeScript-with-JSX पार्सिंग मोड चुनना उस अस्पष्टता को सही तरीक़े से हल करता है, यही वजह है कि सही बोली पहले से चुनना — यह मानने की बजाय कि कोई सामान्य JavaScript पार्सर इसे हल कर देगा — ख़ास तौर पर उन कंपोनेंट फ़ाइलों के लिए मायने रखता है जो दोनों को मिलाती हैं।

डेकोरेटर सिंटैक्स का अब भी विकसित हो रहा हिस्सा हैं

डेकोरेटर — Angular और TypeScript पर बने कुछ बैकएंड फ़्रेमवर्क में आम `@Component` जैसी एनोटेशन — भाषा के मानकीकरण प्रोसेस में कई अलग-अलग प्रस्ताव चरणों से गुज़रे हैं, और अलग-अलग कोडबेस अपने लिखे जाने के समय और कंपाइलर विकल्पों के हिसाब से उस सिंटैक्स के थोड़े अलग वर्ज़न को टारगेट कर सकते हैं। डेकोरेटर सिंटैक्स को सही तरीक़े से पार्स करने के लिए ख़ास तौर पर TypeScript-जागरूक पार्सर चाहिए; कोई सादा JavaScript पार्सर जो किसी क्लास या मेथड से पहले `@` पाता है उसके पास इसका सहारा लेने के लिए कोई तय मतलब नहीं है और वह सीधे फ़ाइल को रिजेक्ट कर देगा।

अक्सर पूछे जाने वाले सवाल

क्या यह लोकल रूप से Prettier चलाने जैसा ही है?

हाँ — यह ख़ुद Prettier है, Node की बजाय आपके ब्राउज़र में चल रहा है। एक जैसे विकल्पों के साथ आपको उसी फ़ाइल पर `npx prettier` के बाइट-दर-बाइट एक जैसा आउटपुट मिलता है।

सरल फ़ॉर्मेटर क्यों नहीं इस्तेमाल करें?

क्योंकि भोले फ़ॉर्मेटर असली कोड तोड़ देते हैं। टेम्पलेट लिटरल और रेगुलर एक्सप्रेशन के अंदर ब्रेस, JSX, और ऑटोमैटिक सेमीकोलन इंसर्शन — इन सबके लिए असल में भाषा को पार्स करना ज़रूरी है। कोई फ़ॉर्मेटर जो पचास में से एक फ़ाइल को चुपचाप बिगाड़ देता है वह किसी फ़ॉर्मेटर के न होने से भी बुरा है।

क्या यह TypeScript और JSX के साथ काम करता है?

हाँ। टाइप एनोटेशन, जेनेरिक, डेकोरेटर और JSX सभी पार्स होते हैं। ध्यान दें कि यह सिर्फ़ फ़ॉर्मेट करता है — यह टाइप चेक या कंपाइल नहीं करता।

फ़ॉर्मेटिंग फ़ेल क्यों हुई?

कोड में एक सिंटैक्स एरर है — प्रिंट करने से पहले Prettier को इसे पार्स करना पड़ता है। मैसेज में पहली समस्या की लाइन और कॉलम शामिल होता है, जो आमतौर पर उसे ढूँढने के लिए काफ़ी है।

क्या मेरा कोड किसी सर्वर पर भेजा जाता है?

नहीं। Prettier आपके ब्राउज़र में डाउनलोड होकर वहीं चलता है। मालिकाना कोड कभी आपकी मशीन से बाहर नहीं जाता, जो ज़्यादातर ऑनलाइन फ़ॉर्मेटर के लिए सच नहीं है।