Aquí está mi sugerencia. Creo que lo que quiere hacer es definir un módulo que se extiende sobre varios ficheros fuente. Para lograr esto, es necesario utilizar un interno del módulo de la siguiente manera:
Modelos / Person.ts
module Model {
export class Person {
name: string;
Message : Message;
constructor(name: string) {
this.name = name;
}
}
}
Modelos / 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");
}
}
}
Si se compila con esta
tsc App.ts
entonces todo debería funcionar. Observe cómo el módulo outerse declara en dos archivos de origen. Dado que este es un interno del módulo, tenemos que decirle al compilador para ponerlos en nuestro ámbito añadiendo///<reference path='foo.ts'/> declaraciones.