TypeScript/tests/cases/compiler/declFileGenericType2.ts
2014-07-12 17:30:19 -07:00

43 lines
1.3 KiB
TypeScript

// @declaration: true
declare module templa.mvc {
interface IModel {
}
}
declare module templa.mvc {
interface IController<ModelType extends templa.mvc.IModel> {
}
}
declare module templa.mvc {
class AbstractController<ModelType extends templa.mvc.IModel> implements mvc.IController<ModelType> {
}
}
declare module templa.mvc.composite {
interface ICompositeControllerModel extends mvc.IModel {
getControllers(): mvc.IController<mvc.IModel>[];
}
}
module templa.dom.mvc {
export interface IElementController<ModelType extends templa.mvc.IModel> extends templa.mvc.IController<ModelType> {
}
}
// Module
module templa.dom.mvc {
export class AbstractElementController<ModelType extends templa.mvc.IModel> extends templa.mvc.AbstractController<ModelType> implements IElementController<ModelType> {
constructor() {
super();
}
}
}
// Module
module templa.dom.mvc.composite {
export class AbstractCompositeElementController<ModelType extends templa.mvc.composite.ICompositeControllerModel> extends templa.dom.mvc.AbstractElementController<ModelType> {
public _controllers: templa.mvc.IController<templa.mvc.IModel>[];
constructor() {
super();
this._controllers = [];
}
}
}