कई फ़ाइलों में आंतरिक मॉड्यूल टाइपप्रति

वोट
5

Animal.ts में टाइपप्रति का उपयोग कर निम्नलिखित वर्ग परिभाषा मान लें:

module Animals
{
    export class Animal { }    
}

मैं एक अलग फाइल में एक कुत्ता वर्ग बनाने के लिए चाहते हैं, इस कोड का उपयोग Dog.ts में कहते हैं:

module Animals
{
    export class Dog extends Animal { }
}

नाम पशु वर्तमान क्षेत्र में मौजूद नहीं है, त्रुटि वर्ग परिभाषा कुत्ते में मुझे मिलता है।

निम्न पंक्ति जोड़कर Dog.ts को

/// <reference path=Animal.ts/>

संकलन त्रुटि को ठीक करता है, लेकिन अगर दोनों वर्गों में एक ही मॉड्यूल के भीतर परिभाषित किया जा रहा है यह क्यों आवश्यक है?

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

08/10/2012 को 19:06
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
5

सबसे पहले, यदि आप एक बार का उपयोग कर दोनों फ़ाइलों को संकलित

tsc Animal.ts Dog.ts

सब कुछ ठीक हो जाएगा। जब टाइपप्रति फ़ाइलें संकलन, संकलक क्या वास्तव में constitue फ़ाइलों से अवगत कराया किए जाने की आवश्यकता कार्यक्रम । इस के साथ स्रोत संदर्भों का उपयोग किया जा सकता है ///या संकलक करने के लिए सभी फ़ाइलों को उपलब्ध कराने के द्वारा। यह कुछ हद तक इस तरह के रूप अन्य भाषाओं के लिए अलग है java, जो एक मध्यवर्ती प्रतिनिधित्व करने के लिए संकलन और एक की एक धारणा है CLASSPATH, जहां अन्य फ़ाइलें जो कार्यक्रम का हिस्सा हैं के लिए खोज करने के लिए।

08/10/2012 को 19:31
का स्रोत उपयोगकर्ता

वोट
2

क्योंकि संकलक पता करने के लिए जहां पशु किसी भी तरह परिभाषित किया गया है की जरूरत है /// संदर्भ आवश्यक है। यह पता नहीं कर सकते हैं क्या स्रोत फ़ाइल यह आप इसे कह जहां देखने के लिए बिना में है।

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

08/10/2012 को 19:11
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more