=== 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 : unknown >mvc : unknown >IModel : IModel } } declare module templa.mvc { >templa : typeof templa >mvc : typeof mvc class AbstractController implements mvc.IController { >AbstractController : AbstractController >ModelType : ModelType >templa : unknown >mvc : unknown >IModel : IModel >mvc : unknown >IController : IController >ModelType : ModelType } } declare module templa.mvc.composite { >templa : typeof templa >mvc : typeof mvc >composite : unknown interface ICompositeControllerModel extends mvc.IModel { >ICompositeControllerModel : ICompositeControllerModel >mvc : unknown >IModel : IModel getControllers(): mvc.IController[]; >getControllers : () => IController[] >mvc : unknown >IController : IController >mvc : unknown >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 : unknown >mvc : unknown >IModel : templa.mvc.IModel >templa : unknown >mvc : unknown >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 : unknown >mvc : unknown >IModel : templa.mvc.IModel >templa : unknown >mvc : unknown >AbstractController : 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 : unknown >mvc : unknown >composite : unknown >ICompositeControllerModel : templa.mvc.composite.ICompositeControllerModel >templa : unknown >dom : unknown >mvc : unknown >AbstractElementController : AbstractElementController >ModelType : ModelType public _controllers: templa.mvc.IController[]; >_controllers : templa.mvc.IController[] >templa : unknown >mvc : unknown >IController : templa.mvc.IController >templa : unknown >mvc : unknown >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[] } } }