मैं टाइपस्क्रिप्ट के साथ खेलना शुरू करता हूं जो मुझे वाकई अद्भुत लगता है। लेकिन मैं *.d.ts
और *.ts
के बीच के अंतर के बारे में उलझन में हूं। उनके बीच क्या अंतर है? क्या कोई मुझे उचित उदाहरण के साथ समझा सकता है?टाइपस्क्रिप्ट में * .d.ts बनाम * .ts के बीच क्या अंतर है?
उत्तर
टाइपप्रति परिभाषा फ़ाइल (*.d.ts
)
इन फ़ाइलों टाइपप्रति में उपयोग के लिए JavaScript फ़ाइल की "आकार" वर्णन करने के लिए उपयोग किया जाता है।
function displayMessage(message) {
alert(message);
}
इस फाइल को अकेला के साथ
, मेरे टाइपप्रति कोड किसी भी सुराग इस समारोह में मौजूद है के लिए नहीं होगा:
उदाहरण के लिए, मैं निम्नलिखित जावास्क्रिप्ट (Example.js) है कहना। यह उसका नाम नहीं जान पाएगा और यह इसके पैरामीटर नहीं जान पाएगा।
declare function displayMessage(message: string);
अब मैं टाइपप्रति में समारोह displayMessage
का उपयोग बिना त्रुटियों संकलन और मैं त्रुटियों संकलन कर देंगे जब मैं उपयोग कर सकते हैं: हम इस तरह के (Example.d.ts) के रूप में एक परिभाषा फ़ाइल में यह वर्णन करके इसे ठीक कर सकते यह गलत है (उदाहरण के लिए, यदि मैंने के बजाय 2
तर्क प्रदान किए हैं तो मुझे एक त्रुटि मिलेगी)।
संक्षेप में: परिभाषा फाइलें टाइपस्क्रिप्ट में कोड को फिर से लिखने के बिना टाइपस्क्रिप्ट में मौजूदा जावास्क्रिप्ट कोड का उपयोग करने की अनुमति देती हैं।
टाइपप्रति फ़ाइल (.ts
)
यह मानक फाइल एक्सटेंशन का उपयोग करने पर टाइपप्रति लेखन है। इसे जावास्क्रिप्ट में संकलित किया जाएगा।
* .d.ts फ़ाइल में अनुमत कुछ भी * .ts फ़ाइल में दिखाई दे सकता है, लेकिन विपरीत नहीं। तो * .d.ts टाइपस्क्रिप्ट की विशेषताओं का सबसेट देता है।
ए * .d.ts फ़ाइल केवल टाइपस्क्रिप्ट कोड रखने की अनुमति है जो आउटपुट में कोई जावास्क्रिप्ट कोड उत्पन्न नहीं करता है। यदि आप टाइपस्क्रिप्ट की किसी भी सुविधा का उपयोग करने का प्रयास करते हैं जो जावास्क्रिप्ट उत्पन्न करेगा, तो आपको एक त्रुटि मिलेगी।
इंटरफेस की अनुमति है, क्योंकि वे संकलन के बाद पूरी तरह से गायब हो जाते हैं।
कॉन्स एनम्स (1.4 में जोड़ा गया) भी सामान्य enums के विपरीत, आउटपुट जावास्क्रिप्ट में एक वस्तु उत्पन्न करता है।
शीर्ष स्तर के वर्ग, चर, मॉड्यूल और फ़ंक्शंस declare
के साथ उपसर्ग किए जाने चाहिए। अंदर यह इसलिए भी शुद्ध घोषणा है अक्सर आप एक शीर्ष स्तर declare module
और उत्पाद ही दिखाई देंगे:
declare module Something {
var x;
}
वे सिर्फ जावास्क्रिप्ट में लिखा कोड के लिए एक टाइपप्रति इंटरफ़ेस उजागर से अधिक के लिए उपयोगी होते हैं। आप उन सामान्य इंटरफेस का एक सेट घोषित करने के लिए भी उनका उपयोग कर सकते हैं जिनका व्यापक रूप से आपके कोड में उपयोग किया जाता है, इसलिए उन इंटरफेस की दृश्यता प्राप्त करने के लिए require
एक विशिष्ट भौतिक मॉड्यूल आवश्यक नहीं है।
- 1. () बनाम [] बनाम {} के बीच क्या अंतर है?
- 2. टाइपस्क्रिप्ट .d.ts फ़ाइलों के लिए खोज पथ
- 3. टाइपस्क्रिप्ट में कभी और शून्य के बीच क्या अंतर है?
- 4. .ts फ़ाइल को टाइपस्क्रिप्ट मॉड्यूल
- 5. टाइपस्क्रिप्ट में मॉड्यूल को बिना उद्धरण बनाम एक मॉड्यूल घोषित करने के बीच क्या अंतर है?
- 6. टाइपस्क्रिप्ट.जेएस और टाइपस्क्रिप्ट सर्विसेज.जेएस के बीच क्या अंतर है?
- 7. इस 2 टाइपस्क्रिप्ट कोड के बीच क्या अंतर है?
- 8. एसजेएलजे बनाम बौने बनाम सेह के बीच क्या अंतर है?
- 9. स्विफ्ट में NSDictionary बनाम शब्दकोश के बीच क्या अंतर है?
- 10. टाइपस्क्रिप्ट: इंटरफेस बनाम प्रकार
- 11. विजुअल स्टूडियो + एएसपी.नेट कोर + टाइपस्क्रिप्ट - जो * .ts संकलित करता है?
- 12. सी ++ बनाम सी ++ के बीच मुख्य अंतर क्या है? नेट?
- 13. स्तरीय बनाम परत अनुप्रयोग के बीच क्या अंतर है?
- 14. विजेट पोस्ट() बनाम हैंडलर पोस्ट() के बीच क्या अंतर है?
- 15. AppBarLayout बनाम टूलबार के बीच क्या अंतर है?
- 16. process.cwd() बनाम __dirname के बीच क्या अंतर है?
- 17. लॉगकैट बनाम dmesg के बीच क्या अंतर है?
- 18. IWindsorContainer बनाम IUnityContainer के बीच क्या अंतर है?
- 19. पहचान प्रदाता बनाम संघ प्रदाता के बीच क्या अंतर है?
- 20. फ्रीजीएलयूटी बनाम जीएलएफडब्ल्यू के बीच क्या अंतर है?
- 21. अपाचे स्पार्क SQLContext बनाम HiveContext के बीच क्या अंतर है?
- 22. "गिट रीसेट" बनाम "गिट रीबेस" के बीच क्या अंतर है?
- 23. db_owner बनाम db_datareader/db_datawriter होने के बीच क्या अंतर है?
- 24. फ़ंक्शन पॉइंटर बनाम फ़ंक्शन कॉल के बीच क्या अंतर है?
- 25. वीएस2012 में टाइपस्क्रिप्ट: (स्वचालित रूप से) .ts से .js
- 26. क्लास आरेख बनाम ऑब्जेक्ट आरेख के बीच क्या अंतर है?
- 27. सोलर बनाम वेबोलर के बीच क्या अंतर है?
- 28. lemmatization बनाम stemming के बीच सही अंतर क्या है?
- 29. process.cwd() बनाम process.env.PWD के बीच क्या अंतर है?
- 30. एक्स = एक्स ++ के बीच क्या अंतर है; बनाम एक्स ++ ;?
मैं उत्तर में सुधार करना चाहता हूं: यदि आप निर्यात किए गए इंटरफ़ेस ** (जो किसी भी जेएस आउटपुट नहीं करेंगे) के साथ एक फ़ाइल को परिभाषित करते हैं, तो आपको इसे '.d.ts' फ़ाइल में लिखना चाहिए ** ** । इस तरह, मॉड्यूल उत्पन्न करते समय इसे कंपाइलर द्वारा छोड़ा जाएगा। – Ciberman