Voici ma suggestion. Je pense que ce que vous voulez faire est de définir un module qui étend sur plusieurs fichiers source. Pour ce faire , vous devez utiliser un interne module comme suit:
Modèles / Person.ts
module Model {
export class Person {
name: string;
Message : Message;
constructor(name: string) {
this.name = name;
}
}
}
Modèles / 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 vous compilez cela avec
tsc App.ts
alors tout devrait fonctionner. Remarquez comment le module outerest déclaré dans deux fichiers source. Étant donné que c'est un interne module, nous devons dire au compilateur de les mettre dans notre champ en ajoutant des ///<reference path='foo.ts'/>déclarations.