Loggfila modul navne i flere filer

stemmer
23

Jeg prøver å etterligne en funksjon i C # i Loggfila.

La oss si at jeg har denne mappestrukturen

App.ts
Models/
    Person.ts
    Message.ts

Jeg så i App.tsønsker dette:

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

Hvordan skulle jeg gjøre dette?

Publisert på 11/10/2012 klokken 18:03
kilden bruker
På andre språk...                            


1 svar

stemmer
33

Her er mitt forslag. Jeg tror det du ønsker å gjøre er å definere en modul som strekker seg over flere kildefiler. For å oppnå dette, må du bruke en intern modul som følger:

Modeller / Person.ts

module Model {

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

Modeller / 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");
        }   
    }   
}

Hvis du kompilere dette med

tsc App.ts

da bør alt fungere. Legg merke til hvordan modulen outerer erklært i to kildefilene. Siden dette er en intern modul, må vi fortelle kompilatoren å sette dem inn i vårt virkeområde ved å legge ///<reference path='foo.ts'/>uttalelser.

Svarte 11/10/2012 kl. 18:42
kilden bruker

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