=== tests/cases/compiler/declFileGenericType2.ts === declare module templa.mvc { >templa : typeof templa >mvc : typeof mvc interface IModel { >IModel : IModel } } declare module templa.mvc { >templa : typeof templa >mvc : typeof mvc interface IController { >IController : IController >ModelType : ModelType >templa : any >mvc : any >IModel : IModel } } declare module templa.mvc { >templa : typeof templa >mvc : typeof mvc class AbstractController implements mvc.IController { >AbstractController : AbstractController >ModelType : ModelType >templa : any >mvc : any >IModel : IModel >mvc.IController : any >mvc : typeof mvc >IController : IController >ModelType : ModelType } } declare module templa.mvc.composite { >templa : typeof templa >mvc : typeof mvc >composite : any interface ICompositeControllerModel extends mvc.IModel { >ICompositeControllerModel : ICompositeControllerModel >mvc.IModel : any >mvc : typeof mvc >IModel : IModel getControllers(): mvc.IController[]; >getControllers : () => IController[] >mvc : any >IController : IController >mvc : any >IModel : IModel } } module templa.dom.mvc { >templa : typeof templa >dom : typeof dom >mvc : typeof mvc export interface IElementController extends templa.mvc.IController { >IElementController : IElementController >ModelType : ModelType >templa : any >mvc : any >IModel : templa.mvc.IModel >templa.mvc.IController : any >templa.mvc : typeof templa.mvc >templa : typeof templa >mvc : typeof templa.mvc >IController : templa.mvc.IController >ModelType : ModelType } } // Module module templa.dom.mvc { >templa : typeof templa >dom : typeof dom >mvc : typeof mvc export class AbstractElementController extends templa.mvc.AbstractController implements IElementController { >AbstractElementController : AbstractElementController >ModelType : ModelType >templa : any >mvc : any >IModel : templa.mvc.IModel >templa.mvc.AbstractController : templa.mvc.AbstractController >templa.mvc : typeof templa.mvc >templa : typeof templa >mvc : typeof templa.mvc >AbstractController : typeof templa.mvc.AbstractController >ModelType : ModelType >IElementController : IElementController >ModelType : ModelType constructor() { super(); >super() : void >super : typeof templa.mvc.AbstractController } } } // Module module templa.dom.mvc.composite { >templa : typeof templa >dom : typeof dom >mvc : typeof mvc >composite : typeof composite export class AbstractCompositeElementController extends templa.dom.mvc.AbstractElementController { >AbstractCompositeElementController : AbstractCompositeElementController >ModelType : ModelType >templa : any >mvc : any >composite : any >ICompositeControllerModel : templa.mvc.composite.ICompositeControllerModel >templa.dom.mvc.AbstractElementController : AbstractElementController >templa.dom.mvc : typeof mvc >templa.dom : typeof dom >templa : typeof templa >dom : typeof dom >mvc : typeof mvc >AbstractElementController : typeof AbstractElementController >ModelType : ModelType public _controllers: templa.mvc.IController[]; >_controllers : templa.mvc.IController[] >templa : any >mvc : any >IController : templa.mvc.IController >templa : any >mvc : any >IModel : templa.mvc.IModel constructor() { super(); >super() : void >super : typeof AbstractElementController this._controllers = []; >this._controllers = [] : undefined[] >this._controllers : templa.mvc.IController[] >this : AbstractCompositeElementController >_controllers : templa.mvc.IController[] >[] : undefined[] } } }