TypeScript/tests/baselines/reference/declFileGenericType2.types
2014-08-15 14:37:48 -07:00

141 lines
3.5 KiB
Plaintext

=== 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<ModelType extends templa.mvc.IModel> {
>IController : IController<ModelType>
>ModelType : ModelType
>templa : templa
>mvc : mvc
>IModel : IModel
}
}
declare module templa.mvc {
>templa : typeof templa
>mvc : typeof mvc
class AbstractController<ModelType extends templa.mvc.IModel> implements mvc.IController<ModelType> {
>AbstractController : AbstractController<ModelType>
>ModelType : ModelType
>templa : templa
>mvc : mvc
>IModel : IModel
>mvc : mvc
>IController : IController
>ModelType : ModelType
}
}
declare module templa.mvc.composite {
>templa : typeof templa
>mvc : typeof mvc
>composite : composite
interface ICompositeControllerModel extends mvc.IModel {
>ICompositeControllerModel : ICompositeControllerModel
>mvc : mvc
>IModel : IModel
getControllers(): mvc.IController<mvc.IModel>[];
>getControllers : () => IController<IModel>[]
>mvc : mvc
>IController : IController
>mvc : mvc
>IModel : IModel
}
}
module templa.dom.mvc {
>templa : typeof templa
>dom : typeof dom
>mvc : typeof mvc
export interface IElementController<ModelType extends templa.mvc.IModel> extends templa.mvc.IController<ModelType> {
>IElementController : IElementController<ModelType>
>ModelType : ModelType
>templa : templa
>mvc : mvc
>IModel : IModel
>templa : templa
>mvc : mvc
>IController : IController
>ModelType : ModelType
}
}
// Module
module templa.dom.mvc {
>templa : typeof templa
>dom : typeof dom
>mvc : typeof mvc
export class AbstractElementController<ModelType extends templa.mvc.IModel> extends templa.mvc.AbstractController<ModelType> implements IElementController<ModelType> {
>AbstractElementController : AbstractElementController<ModelType>
>ModelType : ModelType
>templa : templa
>mvc : mvc
>IModel : IModel
>templa : templa
>mvc : mvc
>AbstractController : AbstractController
>ModelType : ModelType
>IElementController : IElementController
>ModelType : ModelType
constructor() {
super();
>super() : void
}
}
}
// Module
module templa.dom.mvc.composite {
>templa : typeof templa
>dom : typeof dom
>mvc : typeof mvc
>composite : typeof composite
export class AbstractCompositeElementController<ModelType extends templa.mvc.composite.ICompositeControllerModel> extends templa.dom.mvc.AbstractElementController<ModelType> {
>AbstractCompositeElementController : AbstractCompositeElementController<ModelType>
>ModelType : ModelType
>templa : templa
>mvc : mvc
>composite : composite
>ICompositeControllerModel : ICompositeControllerModel
>templa : templa
>dom : dom
>mvc : mvc
>AbstractElementController : AbstractElementController
>ModelType : ModelType
public _controllers: templa.mvc.IController<templa.mvc.IModel>[];
>_controllers : IController<IModel>[]
>templa : templa
>mvc : mvc
>IController : IController
>templa : templa
>mvc : mvc
>IModel : IModel
constructor() {
super();
>super() : void
this._controllers = [];
>this._controllers = [] : IController<IModel>[]
>this._controllers : IController<IModel>[]
>this : AbstractCompositeElementController<ModelType>
>_controllers : IController<IModel>[]
>[] : IController<IModel>[]
}
}
}