जैसे @takeshin ने कहा .d टाइपस्क्रिप्ट (.ts) के लिए घोषणा फ़ाइल के लिए खड़ा है।
इस पोस्ट का उत्तर देने से पहले कुछ बिंदुओं को स्पष्ट किया जाना चाहिए -
- टाइपस्क्रिप्ट जावास्क्रिप्ट का सिंटैक्टिक सुपरसेट है।
- टाइपस्क्रिप्ट स्वयं नहीं चलती है, इसे जावास्क्रिप्ट (ट्रांसस्क्रिप्ट को जावास्क्रिप्ट रूपांतरण में टाइप करना ) करना होगा
- "टाइप डेफ़िनिशन" और "टाइप चेकिंग" प्रमुख ऐड-ऑन फ़ंक्शनलिटीज़ हैं जो टाइपस्क्रिप्ट जावास्क्रिप्ट पर प्रदान करता है। ( प्रकार स्क्रिप्ट और जावास्क्रिप्ट के बीच अंतर की जाँच करें )
यदि आप सोच रहे हैं कि यदि टाइपस्क्रिप्ट सिर्फ वाक्य-संबंधी सुपरसेट है, तो यह क्या लाभ प्रदान करता है - https://basarat.gitbooks.io/typescript/docs/why-typescript.html#the-typescript-type-system
इस पोस्ट का जवाब देने के लिए -
जैसा कि हमने चर्चा की, टाइपस्क्रिप्ट जावास्क्रिप्ट का सुपरसेट है और इसे जावास्क्रिप्ट में ट्रांसप्लड करने की आवश्यकता है। इसलिए यदि कोई लाइब्रेरी या थर्ड पार्टी कोड टाइपस्क्रिप्ट में लिखा जाता है, तो वह अंततः जावास्क्रिप्ट में परिवर्तित हो जाता है, जिसका उपयोग जावास्क्रिप्ट प्रोजेक्ट द्वारा किया जा सकता है, लेकिन इसके विपरीत सही नहीं है।
पूर्व के लिए -
यदि आप जावास्क्रिप्ट पुस्तकालय स्थापित करते हैं -
npm install --save mylib
और इसे टाइपस्क्रिप्ट कोड में आयात करने का प्रयास करें -
import * from "mylib";
आपको त्रुटि मिलेगी।
"मॉड्यूल 'mylib' नहीं ढूँढ सकता।"
जैसा कि @ क्रिस द्वारा उल्लेख किया गया है, अंडरस्कोर, जेक्वेरी जैसे कई पुस्तकालय पहले से ही जावास्क्रिप्ट में लिखे गए हैं। टाइपस्क्रिप्ट परियोजनाओं के लिए उन पुस्तकालयों को फिर से लिखने के बजाय, एक वैकल्पिक समाधान की आवश्यकता थी।
ऐसा करने के लिए, आप उपरोक्त। Mylib.d.ts जैसे * .d.ts नाम की जावास्क्रिप्ट लाइब्रेरी में टाइप डिक्लेरेशन फ़ाइल प्रदान कर सकते हैं। घोषणा फ़ाइल केवल संबंधित जावास्क्रिप्ट फ़ाइल में परिभाषित कार्यों और चर के प्रकार की घोषणाएं प्रदान करती है।
अब जब आप कोशिश करेंगे -
import * from "mylib";
mylib.d.ts आयातित हो जाती है जो जावास्क्रिप्ट लाइब्रेरी कोड और टाइपस्क्रिप्ट प्रोजेक्ट के बीच एक इंटरफेस के रूप में कार्य करता है।