मुझे यह पता नहीं लगाया जा सकता है कि कई फाइलों में "निर्यात मॉड्यूल" फैलाना संभव है या नहीं।एकाधिक एएमडी फाइलों में मॉड्यूल कैसे फैलाएं?
अगर मैं फ़ाइल Contact.ts है:
// file Contact.ts
export module Contacts {
export class Contact {
...
}
}
और एक अन्य ContactView.ts
// file ContactView.ts
export module Contacts {
export class ContactView {
model: Contact; // <--- is not recognized
}
}
फिर टीएससी संपर्क वर्ग पहचान नहीं कर रहा। जैसा कि आप देख सकते हैं संपर्क और संपर्क दृश्य को उसी मॉड्यूल में रहने के लिए घोषित किया गया है और spec के अनुसार इसे काम करना चाहिए।
मैं require.js और एएमडी पैटर्न का उपयोग करता है तो मैं "निर्यात मॉड्यूल" घोषणा उपयोग करने के लिए एक समग्र एप्लिकेशन बनाने रहा हूँ।
क्या मुझे कुछ प्रकार की "आगे की घोषणा" या कुछ मुश्किल "आयात" करना चाहिए?
सलाह के लिए धन्यवाद।
संपादित करें: वर्तमान में मैं आयात के माध्यम से अलग से प्रत्येक मॉड्यूल लोड है, लेकिन, अगर आप ध्यान देंगे, यह "आयात" निर्भरता के कोड और बहुत कुछ का एक विशाल अपशिष्ट पैदा करता है। मेरा सवाल यह था कि अगर टीएस को पता चले कि मुझे आयात करने का मतलब नहीं है तो उसी नामस्थान (यानी संपर्क) का उपयोग करने का कोई तरीका है। मैं सामान्य // कमांड में देख रहा था, लेकिन यह काम नहीं करता है। मैंने * .d.ts घोषणा फ़ाइलों को अब तक कोई सफलता नहीं दी है।
यह वही है जो मैं अभी करता हूं - प्रत्येक मॉड्यूल को आयात के माध्यम से अलग से लोड करें, लेकिन, यदि आप ध्यान देंगे, तो यह कोड और सैकड़ों निर्भरताओं का एक विशाल अपशिष्ट बनाता है। मेरा सवाल यह था कि अगर टीएस को पता चले कि मुझे आयात करने का मतलब नहीं है तो उसी नामस्थान (यानी संपर्क) का उपयोग करने का कोई तरीका है। मैं सामान्य // कमांड में देख रहा था, लेकिन यह काम नहीं करता है। –
IgorM
उस स्थिति में, मॉड्यूल संपर्कों को निर्यात न करें, बस इसे अपनी सभी फ़ाइलों में 'मॉड्यूल संपर्क {...}' के रूप में परिभाषित करें, टीएस की सहायता के लिए /// <संदर्भ .. /> (यह आंतरिक मॉड्यूल के लिए काम करता है) का उपयोग करें उन्हें ढूंढें, और एएमडी मॉड्यूल के लिए एक नई फ़ाइल बनाएं जिसमें अभी 'निर्यात var संपर्क = संपर्क;' है इसमें आप एएमडी के माध्यम से पूरी चीज लोड कर सकते हैं। आपको यह सुनिश्चित करना होगा कि जिस प्रकार आप निर्यात कर रहे हैं वह मॉड्यूल के समान सटीक नाम नहीं है, अन्यथा उत्सर्जित कोड काम नहीं करेगा। दुर्भाग्य से मैं इस समय इस के लिए एक कोड डेमो लिख नहीं सकता, लेकिन यदि आवश्यकता हो तो मैं ऐसा कर सकता हूं। – nxn
इसके बारे में कुछ और सोचने के लिए, आपको एक मेकफ़ाइल बनाने की आवश्यकता हो सकती है जो प्रत्येक मॉड्यूल को अपनी जेएस फ़ाइल में आउटपुट करता है। – nxn