Gépelt modul névterek több fájl

szavazat
22

Próbálom utánozni jellemző a C # géppel.

Mondjuk én ezt a mappastruktúrát

App.ts
Models/
    Person.ts
    Message.ts

Aztán itt App.tsakarja ezt:

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

Hogyan tudom ezt megtenni?

A kérdést 11/10/2012 19:03
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
33

Itt van az én javaslatom. Azt hiszem, amit akarok, meg egy modul, amely kiterjed számos forrásból. Ennek elérése érdekében, akkor kell használni egy belső modul az alábbiak szerint:

Modellek / Person.ts

module Model {

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

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

Ha lefordítani ezt a

tsc App.ts

akkor minden kell dolgozni. Figyeljük meg, hogy a modul outernyilvánított két forrás fájlokat. Mivel ez egy belső modul, el kell mondanunk, hogy a fordító tegye őket körünket hozzáadásával ///<reference path='foo.ts'/>nyilatkozatokat.

Válaszolt 11/10/2012 19:42
a forrás felhasználó

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