एक से अधिक फ़ाइलों में टाइपप्रति मॉड्यूल नेमस्पेसिंग

वोट
22

मैं सी टाइपप्रति में # की एक विशेषता की नकल करने की कोशिश कर रहा हूँ।

माना कि मैं इस फ़ोल्डर संरचना है

App.ts
Models/
    Person.ts
    Message.ts

मैं तो में App.tsइस हैं:

module MyAppNamespace {
    export class ChatApp {
        User: Models.Person;
        constructor () => {
            this.User = new Models.Person(John);
            this.User.Message = new Models.Message(Hello World);
        }
    }
}

यह मैं कैसे करूंगा?

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


1 जवाब

वोट
33

यहाँ मेरी सुझाव है। मुझे लगता है कि आप क्या करना चाहते हैं एक मॉड्यूल है कि कई स्रोत फ़ाइलों पर फैली को परिभाषित है। इस लक्ष्य को हासिल करने के लिए, आप एक उपयोग करने की आवश्यकता आंतरिक इस प्रकार मॉड्यूल:

मॉडल / Person.ts

module Model {

  export class Person {
      name: string;
      Message : Message;
      constructor(name: string) {
          this.name = name;
      }   
  }
}

मॉडल / Message.ts

module Model {
   export class Message {
       message: string;
       constructor(message: string) {
          this.message = message;
       }   
   }
}

App.ts

///<reference path='Models/Person.ts'/>
///<reference path='Models/Message.ts'/>
module MyAppNamespace {
    export class ChatApp {
        User: Model.Person;
        constructor () => {
            this.User = new Model.Person("John");
            this.User.Message = new Model.Message("Hello World");
        }   
    }   
}

आप के साथ इस संकलन हैं

tsc App.ts

तो सब कुछ काम करना चाहिए। गौर करें कि मॉड्यूल outerदो स्रोत फ़ाइलों में घोषित किया जाता है। चूंकि यह एक है आंतरिक मॉड्यूल, हम उन्हें जोड़कर हमारे दायरे में लाना संकलक बताने के लिए है ///<reference path='foo.ts'/>बयान।

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

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