2014-08-15 23:33:16 +02:00
=== tests/cases/compiler/genericClassPropertyInheritanceSpecialization.ts ===
interface KnockoutObservableBase<T> {
>KnockoutObservableBase : KnockoutObservableBase<T>
>T : T
peek(): T;
>peek : () => T
>T : T
(): T;
>T : T
(value: T): void;
>value : T
>T : T
}
interface KnockoutObservable<T> extends KnockoutObservableBase<T> {
>KnockoutObservable : KnockoutObservable<T>
>T : T
2014-08-19 04:56:03 +02:00
>KnockoutObservableBase : KnockoutObservableBase<T>
2014-08-15 23:33:16 +02:00
>T : T
equalityComparer(a: T, b: T): boolean;
>equalityComparer : (a: T, b: T) => boolean
>a : T
>T : T
>b : T
>T : T
valueHasMutated(): void;
>valueHasMutated : () => void
valueWillMutate(): void;
>valueWillMutate : () => void
}
interface KnockoutObservableArray<T> extends KnockoutObservable<T[]> {
>KnockoutObservableArray : KnockoutObservableArray<T>
>T : T
2014-08-19 04:56:03 +02:00
>KnockoutObservable : KnockoutObservable<T>
2014-08-15 23:33:16 +02:00
>T : T
indexOf(searchElement: T, fromIndex?: number): number;
>indexOf : (searchElement: T, fromIndex?: number) => number
>searchElement : T
>T : T
>fromIndex : number
slice(start: number, end?: number): T[];
>slice : (start: number, end?: number) => T[]
>start : number
>end : number
>T : T
splice(start: number, deleteCount?: number, ...items: T[]): T[];
>splice : (start: number, deleteCount?: number, ...items: T[]) => T[]
>start : number
>deleteCount : number
>items : T[]
>T : T
>T : T
pop(): T;
>pop : () => T
>T : T
push(...items: T[]): void;
>push : (...items: T[]) => void
>items : T[]
>T : T
shift(): T;
>shift : () => T
>T : T
unshift(...items: T[]): number;
>unshift : (...items: T[]) => number
>items : T[]
>T : T
reverse(): T[];
>reverse : () => T[]
>T : T
sort(compareFunction?: (a: T, b: T) => number): void;
>sort : (compareFunction?: (a: T, b: T) => number) => void
>compareFunction : (a: T, b: T) => number
>a : T
>T : T
>b : T
>T : T
replace(oldItem: T, newItem: T): void;
>replace : (oldItem: T, newItem: T) => void
>oldItem : T
>T : T
>newItem : T
>T : T
remove(item: T): T[];
>remove : (item: T) => T[]
>item : T
>T : T
>T : T
removeAll(items?: T[]): T[];
>removeAll : (items?: T[]) => T[]
>items : T[]
>T : T
>T : T
destroy(item: T): void;
>destroy : (item: T) => void
>item : T
>T : T
destroyAll(items?: T[]): void;
>destroyAll : (items?: T[]) => void
>items : T[]
>T : T
}
interface KnockoutObservableArrayStatic {
>KnockoutObservableArrayStatic : KnockoutObservableArrayStatic
fn: KnockoutObservableArray<any>;
>fn : KnockoutObservableArray<any>
2014-08-19 04:56:03 +02:00
>KnockoutObservableArray : KnockoutObservableArray<T>
2014-08-15 23:33:16 +02:00
<T>(value?: T[]): KnockoutObservableArray<T>;
>T : T
>value : T[]
>T : T
2014-08-19 04:56:03 +02:00
>KnockoutObservableArray : KnockoutObservableArray<T>
2014-08-15 23:33:16 +02:00
>T : T
}
declare module ko {
2014-08-28 21:40:58 +02:00
>ko : typeof ko
2014-08-15 23:33:16 +02:00
export var observableArray: KnockoutObservableArrayStatic;
>observableArray : KnockoutObservableArrayStatic
>KnockoutObservableArrayStatic : KnockoutObservableArrayStatic
}
module Portal.Controls.Validators {
2014-08-28 21:40:58 +02:00
>Portal : typeof Portal
>Controls : typeof Controls
>Validators : typeof Validators
2014-08-15 23:33:16 +02:00
export class Validator<TValue> {
>Validator : Validator<TValue>
>TValue : TValue
private _subscription;
>_subscription : any
public message: KnockoutObservable<string>;
>message : KnockoutObservable<string>
2014-08-19 04:56:03 +02:00
>KnockoutObservable : KnockoutObservable<T>
2014-08-15 23:33:16 +02:00
public validationState: KnockoutObservable<number>;
>validationState : KnockoutObservable<number>
2014-08-19 04:56:03 +02:00
>KnockoutObservable : KnockoutObservable<T>
2014-08-15 23:33:16 +02:00
public validate: KnockoutObservable<TValue>;
>validate : KnockoutObservable<TValue>
2014-08-19 04:56:03 +02:00
>KnockoutObservable : KnockoutObservable<T>
2014-08-15 23:33:16 +02:00
>TValue : TValue
constructor(message?: string) { }
>message : string
public destroy(): void { }
>destroy : () => void
public _validate(value: TValue): number {return 0 }
>_validate : (value: TValue) => number
>value : TValue
>TValue : TValue
}
}
module PortalFx.ViewModels.Controls.Validators {
2014-08-28 21:40:58 +02:00
>PortalFx : typeof PortalFx
>ViewModels : typeof ViewModels
>Controls : typeof Controls
>Validators : typeof Validators
2014-08-15 23:33:16 +02:00
export class Validator<TValue> extends Portal.Controls.Validators.Validator<TValue> {
>Validator : Validator<TValue>
>TValue : TValue
2014-08-28 21:40:58 +02:00
>Portal : unknown
>Controls : unknown
>Validators : unknown
2014-08-25 19:36:12 +02:00
>Validator : Portal.Controls.Validators.Validator<TValue>
2014-08-15 23:33:16 +02:00
>TValue : TValue
constructor(message?: string) {
>message : string
super(message);
>super(message) : void
2014-08-28 21:31:37 +02:00
>super : typeof Portal.Controls.Validators.Validator
2014-08-15 23:33:16 +02:00
>message : string
}
}
}
interface Contract<TValue> {
>Contract : Contract<TValue>
>TValue : TValue
validators: KnockoutObservableArray<PortalFx.ViewModels.Controls.Validators.Validator<TValue>>;
2014-08-25 19:36:12 +02:00
>validators : KnockoutObservableArray<PortalFx.ViewModels.Controls.Validators.Validator<TValue>>
2014-08-19 04:56:03 +02:00
>KnockoutObservableArray : KnockoutObservableArray<T>
2014-08-28 21:40:58 +02:00
>PortalFx : unknown
>ViewModels : unknown
>Controls : unknown
>Validators : unknown
2014-08-25 19:36:12 +02:00
>Validator : PortalFx.ViewModels.Controls.Validators.Validator<TValue>
2014-08-15 23:33:16 +02:00
>TValue : TValue
}
class ViewModel<TValue> implements Contract<TValue> {
>ViewModel : ViewModel<TValue>
>TValue : TValue
2014-08-19 04:56:03 +02:00
>Contract : Contract<TValue>
2014-08-15 23:33:16 +02:00
>TValue : TValue
public validators: KnockoutObservableArray<PortalFx.ViewModels.Controls.Validators.Validator<TValue>> = ko.observableArray<PortalFx.ViewModels.Controls.Validators.Validator<TValue>>();
2014-08-25 19:36:12 +02:00
>validators : KnockoutObservableArray<PortalFx.ViewModels.Controls.Validators.Validator<TValue>>
2014-08-19 04:56:03 +02:00
>KnockoutObservableArray : KnockoutObservableArray<T>
2014-08-28 21:40:58 +02:00
>PortalFx : unknown
>ViewModels : unknown
>Controls : unknown
>Validators : unknown
2014-08-25 19:36:12 +02:00
>Validator : PortalFx.ViewModels.Controls.Validators.Validator<TValue>
2014-08-15 23:33:16 +02:00
>TValue : TValue
2014-08-25 19:36:12 +02:00
>ko.observableArray<PortalFx.ViewModels.Controls.Validators.Validator<TValue>>() : KnockoutObservableArray<PortalFx.ViewModels.Controls.Validators.Validator<TValue>>
2014-08-15 23:33:16 +02:00
>ko.observableArray : KnockoutObservableArrayStatic
>ko : typeof ko
>observableArray : KnockoutObservableArrayStatic
2014-08-28 21:40:58 +02:00
>PortalFx : unknown
>ViewModels : unknown
>Controls : unknown
>Validators : unknown
2014-08-25 19:36:12 +02:00
>Validator : PortalFx.ViewModels.Controls.Validators.Validator<TValue>
2014-08-15 23:33:16 +02:00
>TValue : TValue
}