tests/cases/compiler/genericClassPropertyInheritanceSpecialization.ts(58,13): error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'Validator<TValue>'.


==== tests/cases/compiler/genericClassPropertyInheritanceSpecialization.ts (1 errors) ====
    interface KnockoutObservableBase<T> {
        peek(): T;
        (): T;
        (value: T): void;
    }
    
    interface KnockoutObservable<T> extends KnockoutObservableBase<T> {
        equalityComparer(a: T, b: T): boolean;
        valueHasMutated(): void;
        valueWillMutate(): void;
    }
    
    interface KnockoutObservableArray<T> extends KnockoutObservable<T[]> {
        indexOf(searchElement: T, fromIndex?: number): number;
        slice(start: number, end?: number): T[];
        splice(start: number, deleteCount?: number, ...items: T[]): T[];
        pop(): T;
        push(...items: T[]): void;
        shift(): T;
        unshift(...items: T[]): number;
        reverse(): T[];
        sort(compareFunction?: (a: T, b: T) => number): void;
        replace(oldItem: T, newItem: T): void;
        remove(item: T): T[];
        removeAll(items?: T[]): T[];
        destroy(item: T): void;
        destroyAll(items?: T[]): void;
    }
    
    interface KnockoutObservableArrayStatic {
        fn: KnockoutObservableArray<any>;
    
        <T>(value?: T[]): KnockoutObservableArray<T>;
    }
    
    declare module ko {
        export var observableArray: KnockoutObservableArrayStatic;
    }
    
    module Portal.Controls.Validators {
    
        export class Validator<TValue> {
            private _subscription;
            public message: KnockoutObservable<string>;
            public validationState: KnockoutObservable<number>;
            public validate: KnockoutObservable<TValue>;
            constructor(message?: string) { }
            public destroy(): void { }
            public _validate(value: TValue): number {return 0 }
        }
    }
    
    module PortalFx.ViewModels.Controls.Validators {
    
        export class Validator<TValue> extends Portal.Controls.Validators.Validator<TValue> {
    
            constructor(message?: string) {
                super(message);
                ~~~~~~~~~~~~~~
!!! error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'Validator<TValue>'.
            }
        }
    
    }
    
    interface Contract<TValue> {
    
        validators: KnockoutObservableArray<PortalFx.ViewModels.Controls.Validators.Validator<TValue>>;
    }
    
    
    class ViewModel<TValue> implements Contract<TValue> {
    
        public validators: KnockoutObservableArray<PortalFx.ViewModels.Controls.Validators.Validator<TValue>> = ko.observableArray<PortalFx.ViewModels.Controls.Validators.Validator<TValue>>();
    }
    
    