2014-10-09 19 views
27

के अंदर संदर्भ जावास्क्रिप्ट फ़ाइल मैं एक टाइपस्क्रिप्ट फ़ाइल के अंदर एक जावास्क्रिप्ट फ़ंक्शन का उपयोग करना चाहता हूं। मैं जावास्क्रिप्ट फ़ाइल को उस प्रकार के फ़ंक्शन वाले टाइपस्क्रिप्ट फ़ाइल के अंदर कैसे संदर्भित कर सकता हूं?टाइपस्क्रिप्ट

मैंने कोशिश की

<reference path="../libs/myjsfile.js" /> 

जबकि तरह के निर्माण कि यह एक त्रुटि लाता है:

declare function myJavaScriptFunction(param1: number, param2: JQuery): void; 

कि सुनिश्चित करें: Cannot resolve referenced file: ../libs/myjsfile.js

उत्तर

5

तुम बस संकलक कि विधि के बाहर टाइपप्रति मौजूद है बताने के लिए है वेबसाइट आवश्यक सभी फाइलों को लोड करती है, सामान्य जेएस फाइलें और जेएस फाइलें जो टाइपस्क्रिप्ट कंपाइलर उत्पन्न होती हैं

0

इस जबकि तरह का निर्माण एक त्रुटि लाता है: संदर्भित फ़ाइल को हल नहीं कर सकता: ../libs/myjsfile.js

संदर्भ फ़ाइल टैग टाइपप्रति नहीं जावास्क्रिप्ट के लिए कर रहे हैं। आप अपने पृष्ठ में एक स्क्रिप्ट टैग (या requjs की तरह कुछ) का उपयोग कर जावास्क्रिप्ट लोड करेंगे।

टाइपस्क्रिप्ट से जावास्क्रिप्ट का उपयोग करने के लिए आप घोषित करें जावास्क्रिप्ट का एपीआई जिसे आप टाइपस्क्रिप्ट खपत के लिए उपयोग करना चाहते हैं (जैसा कि एकेआर इंगित किया गया है)।

32

जबकि ऊपर दिए गए दो उत्तर एक छोटे या एकल परिवर्तनीय एपीआई के लिए काम करेंगे, सही उत्तर आपकी जावास्क्रिप्ट फ़ाइल के लिए एक प्रकार की घोषणा फ़ाइल लिखना है। आपके उदाहरण के लिए

प्रकार घोषणा फ़ाइल myjsfile.d.ts, जहां .d.ts प्रत्यय क्या टाइपप्रति संकलक है कि यह एक घोषणा फ़ाइल को पार्स है बताता है नामित किया जाएगा। यदि आप विजुअल स्टूडियो का उपयोग करते हैं, तो आपकी घोषणा फ़ाइल टाइपस्क्रिप्ट कंपाइलर द्वारा तब तक पहचानी जाएगी जब तक कि आप उस परियोजना में कहीं भी (कहीं भी) काम कर रहे हों।

घोषणा फाइलें जावास्क्रिप्ट चर, कार्यों और वस्तुओं के बारे में मेटाडेटा स्टोर करती हैं ताकि टाइपस्क्रिप्ट कंपाइलर अपना काम कर सके। यदि आपकी जावास्क्रिप्ट फ़ाइल सामान्य उपयोग में लाइब्रेरी या फ्रेमवर्क होती है, तो DefinitelyTyped निश्चित रूप से आपको आवश्यक परिभाषा फ़ाइल ढूंढने का स्थान है।

यदि आपकी जावास्क्रिप्ट आपका स्वयं का काम है या कम ज्ञात है, तो आपको अपनी खुद की घोषणा घोषणा फ़ाइल लिखनी होगी। The TypeScript Handbook में सेक्शन लेखन .d.ts फ़ाइलें देखें।

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

अगर आपको किसी मदद की ज़रूरत है तो मुझे बताएं!

+0

+1 ग्रेट टीआर: डीआर पर यह कैसे काम करता है, आम तौर पर और DefinatelyTyped रेपो के लिए धन्यवाद, lib पर निर्णय लेने से पहले पहले वहां जांचने के लिए सबसे अच्छा लगता है। –

+2

लेकिन फिर आप अपनी .ts फ़ाइल में .d.ts कैसे शामिल करते हैं? –

+0

d.ts फ़ाइल को उसी प्रोजेक्ट में होना आवश्यक है जैसे .ts फ़ाइल – Doug

0

आप TypeScript Handbook on GitHub में टाइपप्रति documenttion के नवीनतम संस्करण को देख सकते हैं:

इसके अलावा, मैं खोज और सीधे टाइपप्रति परिभाषा फ़ाइलें स्थापित करने के लिए आप tsd उपयोगिता की सिफारिश कर रहा हूँ समुदाय से संचालित DefinitelyTyped भंडार। इस भंडार में सबसे लोकप्रिय जावास्क्रिप्ट पुस्तकालयों के लिए परिभाषा फाइल * .d.ts शामिल हैं।