टाइपस्क्रिप्ट के पीछे प्रेरणा क्या है?


21

हमारे पास जावास्क्रिप्ट था, फिर हमारे पास फ्लैश था, फिर हमारे पास सिल्वरलाइट थी और फिर एचटीएमएल 5 में उन सभी का नाम था।

तो टाइपस्क्रिप्ट के पीछे प्रेरणा क्या है? क्या समस्याओं से निपटने के लिए जा रहे हैं और हम टाइपस्क्रिप्ट के साथ क्या सुधार करते हैं?

http://www.typescriptlang.org/


15
आपको क्यों लगता है कि HTML5 "JavaScript" का नाम बदला गया है?
बरगी

1
इस अर्थ में कि सभी को कुछ चीजों के लिए सहमत होना पड़ा ताकि सामान्य जमीन => तकनीक और विकास ठप हो जाए।
गीरो

3
आपने डार्ट का उल्लेख क्यों किया?
रॉबर्ट हार्वे

डार्ट, टाइपस्क्रिप्ट या कॉफ़ीस्क्रिप्ट को जावास्क्रिप्ट में संकलित किया जा सकता है। और डार्ट काफी नया भी है।
Gero

निकोलस सी। ज़कस द्वारा इस लेख "विचार पर टाइपस्क्रिप्ट" पर एक नज़र डालें: nczonline.net/blog/2012/10/04/ हालांकिts
on-

जवाबों:


35

मुझे लगता है कि यह एक सांख्यिकीय-टाइप, वर्ग-आधारित भाषा है जो जावास्क्रिप्ट के लिए संकलित है। यह एक अच्छा विचार है, और एक यह है दूसरों के पास भी है।

फायदे किसी के लिए भी स्पष्ट होने चाहिए, जो सांख्यिकीय रूप से टाइप की गई, वर्ग-आधारित भाषाओं और जावास्क्रिप्ट में विकसित हो:

  • और सबसे पहले, एक संकलक। तैनाती से पहले टाइपो या लापरवाही के कारण होने वाली स्पष्ट शुद्धता की समस्याओं की जांच करने में सक्षम होना कुछ ऐसा है जो अधिकांश डेवलपर्स को तब तक के लिए दिया जाता है जब तक कि उन्हें वेब विकास नहीं करना पड़ता है, और फिर यह अचानक अपने पैरों के नीचे से बाहर निकल जाता है। ब्राउज़रों को उचित परीक्षण और डिबगिंग सुविधाओं की कीमत पर ब्राउज़िंग अनुभव को सुखद बनाने के लिए डिज़ाइन किया गया है, और मानक समाधान, JSLint, एक वास्तविक संकलक के लिए कोई विकल्प नहीं है क्योंकि यह कुछ स्पष्ट शुद्धता समस्याओं को याद करता है और शैली-परीक्षक शिकायतों का एक गुच्छा मिलाता है। इसकी रिपोर्ट के साथ। वास्तविक संकलक का होना एक बहुत बड़ा कदम है।
  • और इसी तरह की लाइनों के साथ, एक प्रकार की प्रणाली । टाइप सिस्टम आपके कोड को पढ़ने में आसान बना देता है (आप जानते हैं कि वास्तव में एक फ़ंक्शन में क्या पारित किया जा रहा है, और यह क्या कर सकता है, बस पैरामीटर सूची को देखकर, उदाहरण के लिए) और संकलन पर एक निश्चित डिग्री की शुद्धता लागू करके समय। (यदि आप किसी विशिष्ट ऑब्जेक्ट प्रकार की उम्मीद कर रहे हैं, तो पूर्णांक को पारित करना एक त्रुटि है। जावास्क्रिप्ट आपको ऐसा करने देगा और फिर जब आप इसे चलाने का प्रयास करते हैं, तो यह उड़ जाता है; एक प्रकार के सिस्टम वाला एक कंपाइलर इसे पकड़ लेगा और इसके लिए एक त्रुटि रिपोर्ट करेगा आप।)

इसलिए जैसा कि हम देखते हैं, मूल विचार बहुत अच्छा है। यह कहने के बाद, मैं भाषा के बारे में कुछ भी नहीं कह सकता क्योंकि मुझे इसका कोई अनुभव नहीं है। लेकिन मैंने स्मार्ट (ऊपर से जुड़ा हुआ) का उपयोग किया है और इसे वेब विकास के लिए एक अविश्वसनीय रूप से शक्तिशाली और उपयोगी उपकरण माना है।


7
यह एक नई भाषा की तुलना में जावास्क्रिप्ट के सुपरसेट की तरह अधिक है जो इसे संकलित करता है।
डैनियल लिटिल

2
हां, प्रोग्रामर को दृढ़ता से टाइप करना आसान हो जाता है।
एडविन यिप

13
टाइपस्क्रिप्ट वैधानिक रूप से टाइप की जाती है, दृढ़ता से टाइप की हुई नहीं।
फेंटन

15

टाइपस्क्रिप्ट उपयोग करने के लिए कुछ अच्छे कारण हैं, जहाँ तक मैं देख सकता हूँ। सबसे पहले और सबसे महत्वपूर्ण, जैसा कि मेसन व्हीलर ने कहा, एक संकलक । या बल्कि सभी जाँच एक संकलक करता है। JSLint और अन्य उपकरण उपयोगी हैं, लेकिन कुछ समस्याओं को याद करते हैं और कभी-कभी सादे गलत होते हैं। मैं निश्चित रूप से इस "नवाचार" का स्वागत करता हूं।

फिर एक वास्तविक प्रकार की प्रणाली है , पठनीयता में सुधार और सही प्रकार लागू करता है। आखिरकार, इससे विकास की गति बढ़ जाती है।

मेरे लिए, महान चीजों में से एक सहायक उपकरण है । यह शायद प्रकार प्रणाली का एक दुष्प्रभाव है, लेकिन फिर भी महान है। और वास्तव में आवश्यक है, क्योंकि वर्तमान जावास्क्रिप्ट टूलींग-समर्थन उपयोगी से परे है।

टाइपस्क्रिप्ट जावास्क्रिप्ट को विस्तारित करने की कोशिश करता है । संकलक वास्तव में अच्छा जावास्क्रिप्ट उत्पन्न करता है। और इसके अतिरिक्त, यह ECMAScript 6 प्रस्तावों का अनुसरण करता है । (उदाहरण के लिए तीर फ़ंक्शन सिंटैक्स , पैरामीटर डिफ़ॉल्ट मान , मॉड्यूल और इतने पर।

यह मॉड्यूल और कक्षाओं के साथ काम करना आसान बनाता है। जावास्क्रिप्ट में कक्षाओं और मॉड्यूल के साथ काम करना वास्तव में संभव और काफी सामान्य है, लेकिन इसके लिए बॉयलरप्लेट कोड की कुछ मात्रा की आवश्यकता होती है। और वास्तव में पढ़ा जाना आसान नहीं है। टाइपस्क्रिप्ट, जावा या C # की तरह ही क्लास-, इंटरफ़ेस- और मॉड्यूल-स्टेटमेंट लिखने की अनुमति देता है, जो कि अगर आप मुझसे पूछें तो यह बहुत आसान है।

लेकिन आखिरकार, यह अभी भी जावास्क्रिप्ट है । कोई नई भाषा, या वाक्यविन्यास सीखने की आवश्यकता नहीं है। केवल एक चीज जो इसे जोड़ती है, वह है वैकल्पिक प्रकार की प्रणाली (जो महान और अतिदेय है)।

फिर "परिभाषा पुस्तकालय" है , जिसका अर्थ है कि मैं अपने सभी जावास्क्रिप्ट लिबास को बिना पुनर्लेखन, या यहां तक ​​कि उन्हें पैच किए बिना उपयोग कर सकता हूं। हालाँकि, मेरे पास अब अतिरिक्त प्रकार की प्रणाली है।

मैं इसे जरूर आजमाऊंगा!

एक आखिरी चीज, एचटीएमएल 5 और टाइपस्क्रिप्ट के बीच कोई प्रतिस्पर्धा नहीं है। लेकिन यह एक और कहानी है।


5

हमारे पास जावास्क्रिप्ट था, फिर हमारे पास फ्लैश था, फिर हमारे पास सिल्वरलाइट थी और फिर एचटीएमएल 5 में उन सभी का नाम था।

यह बस सच नहीं है । Html5 उनके पास नहीं है, यह नए मार्कअप का परिचय देता है जो मल्टीमीडिया के उपयोग को सरल बनाता है, और नए युग के ब्राउज़रों के फायदे की खोज करता है (जैसे HTML का प्रतिपादन करते समय हार्डवेयर त्वरण का उपयोग करना)।

तो टाइपस्क्रिप्ट के पीछे प्रेरणा क्या है?

इसका उपयोग करने के लिए प्रेरणाएँ कारणों से प्रेरित हो सकती हैं। टाइपस्क्रिप्ट की सभी विशेषताएं जैसे: स्टैटिक चेकिंग, सिंबल-आधारित नेविगेशन, स्टेटमेंट पूरा करना और कोड रीफैक्टरिंग इस पर विचार करने के लिए बहुत मजबूत कारण हैं।

इसके अलावा, यह आपको मजबूत घटक बनाने में मदद करने के लिए कक्षाएं, मॉड्यूल और इंटरफेस प्रदान करता है। ये सुविधाएं उच्च-आत्मविश्वास अनुप्रयोग विकास के लिए विकास के समय पर उपलब्ध हैं, लेकिन सरल जावास्क्रिप्ट में संकलित हैं।


HTML 5 हार्डवेयर त्वरण के लिए पूर्व-रीक नहीं है। अधिकांश ब्राउज़र HTML5 मार्कअप के साथ या उसके बिना कर रहे हैं
नील एन

मेरा कथन बताता है कि हार्डवेयर त्वरण एक ऐसी सुविधा है जो ब्राउज़र html5 को नहीं प्रदान करता है।
यूसुबोव

3

इसे जेएस को संकलित करने वाली कुल नई भाषा के बजाय जावास्क्रिप्ट विकास को प्रबंधित करने के लिए एक उपकरण के रूप में माना जा सकता है। यह डार्ट की तरह सर्वर साइड डेवलपमेंट लैंग्वेज नहीं बनना चाहता और कॉफ़ीस्क्रिप्ट जैसी अलग सिंटैक्स भी नहीं है। यह एक लोकप्रिय भाषा नहीं लेना चाहता था (और यह कोर लाइब्रेरी है) और इसे जीडब्ल्यूटी या स्क्रिप्ट # की तरह जेएस पर संकलित करें। टाइपस्क्रिप्ट भी जेएस के अगले संस्करण के लिए प्रस्तावित एक ही "वर्ग" वाक्यविन्यास का पालन करते हैं।

मुझे लगता है कि अधिकांश वेब विकास आज किया जाता है, केवल ग्राहक पक्ष में, वास्तविक जावास्क्रिप्ट का उपयोग करता है। डार्ट, जीडब्ल्यूटी जैसी भाषाएं या रूपरेखा इसके लिए उपयुक्त नहीं है। यदि आप कॉफ़ीस्क्रिप्ट के लिए जाते हैं, तो एक नया वाक्यविन्यास आता है। और आपको कॉफ़ीस्क्रिप्ट और जेएस दोनों को समझना होगा। जबकि टाइपस्क्रिप्ट बस कुछ अतिरिक्त प्रकार की उन्मुख सुविधाओं को जोड़ रहा है, जेएस में पिघलाया जाता है, जो डेवलपर्स को विशिष्ट प्रकार की त्रुटियों से बचाता है (जो कि जेएस त्रुटियों का एक बड़ा हिस्सा है) और विकास उपकरण को डेवलपर्स के इरादे के बारे में अधिक जानकारी देता है।

यह दृष्टिकोण नया नहीं है। के "स्टेटिक टाइपिंग" अनुभाग पर जाएं

यह लेख आपकी क्वेरी- http://www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/ को संबोधित करता है


0

मुझे लगता है कि यह एक साझा, अविश्वसनीय (अविश्वसनीय) क्रैप (जावास्क्रिप्ट) के टुकड़े को एक मालिकाना भाषा में बदलने का प्रयास है जो वास्तव में पर्याप्त परियोजनाओं के लिए उपयोग किया जा सकता है।

यह GWT की तुलना में होना चाहिए, जिसमें लक्ष्यों का एक समान सेट है, लेकिन जावास्क्रिप्ट को भाषा का हिस्सा नहीं बनाकर एक क्लीनर दृष्टिकोण लिया; और जावा एप्लेट्स या फ्लैश के साथ, जो ब्राउज़र से स्वतंत्र एक पूर्ण रनटाइम वातावरण को परिभाषित करने का बहुत ही स्वच्छ दृष्टिकोण लेता है।

आपकी राय अलग-अलग हो सकती है, लेकिन मुझे लगता है कि यह तब तक बर्बाद है जब तक यह देशी (अलग, असंगत) जावास्क्रिप्ट कार्यान्वयन और डोम मॉडल की आपूर्ति करने वाले ब्राउज़रों पर निर्भर करता है।


5
सबसे पहले यह मालिकाना नहीं है, यह पहले से ही एक खुला मानक है। दूसरे यह GWT / ScriptSharp (हालांकि समान) की तुलना में डार्ट की तरह अधिक है।
डैनियल लिटिल

1
इस पर जीतने का शायद कोई तरीका नहीं है - अगर Microsoft इसे नियंत्रित नहीं करता है तो यह बहुत सी वैरिएंट्स के साथ एक और संक्षिप्त भाषा बन जाएगी, और यह अभी भी जावास्क्रिप्ट और
डोम

1
आप किसी ऐसे व्यक्ति को आवाज़ देते हैं, जो अपने फ़्लैश और / या जावा कौशल पर एक कड़वा कड़वा हो सकता है जिसे वर्तमान लोकप्रिय HTML5 / JS स्टैक द्वारा काफी कम प्रासंगिक बनाया जा रहा है।
ग्राहम 13

3
-1 इसलिए आपको जावास्क्रिप्ट पसंद नहीं है। यह मूल रूप से आपका कथन है।
ब्रूनो शेपर

2
निष्पक्ष, और चूंकि यह टाइपस्क्रिप्ट के लिए नींव है, इसलिए मुझे लगता है कि मुझे लगता है कि टाइपस्क्रिप्ट एक खराब नींव पर आधारित है। यह जरूरी नहीं कि घातक है, लेकिन यह चोट की दुनिया है।
ddyer
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.