mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-08-31 11:40:47 +08:00
Refactored the properties of KnockoutObservable<T> into a seperate interface. This way KnockoutObservableArray doesn't extend KnockoutObservable anymore, making it possible to override methods according to the knockoutjs syntax (including Array Change subscription support).
This commit is contained in:
Vendored
+22
-10
@@ -53,7 +53,7 @@ interface KnockoutSubscription {
|
||||
}
|
||||
|
||||
interface KnockoutSubscribable<T> extends KnockoutSubscribableFunctions<T> {
|
||||
subscribe(callback: (object: any) => void, target?: any, event?: string): KnockoutSubscription;
|
||||
subscribe(callback: (param : any) => void, target?: any, event?: string): KnockoutSubscription;
|
||||
subscribe<TEvent>(callback: (newValue: TEvent) => void, target: any, event: string): KnockoutSubscription;
|
||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutSubscribable<T>;
|
||||
getSubscriptionsCount(): number;
|
||||
@@ -83,7 +83,25 @@ interface KnockoutObservableArrayStatic {
|
||||
<T>(value?: T[]): KnockoutObservableArray<T>;
|
||||
}
|
||||
|
||||
interface KnockoutObservableArray<T> extends KnockoutObservable<T[]>, KnockoutObservableArrayFunctions<T> {
|
||||
interface KnockoutObservableProperties<T>{
|
||||
(): T;
|
||||
(value: T): void;
|
||||
|
||||
peek(): T;
|
||||
valueHasMutated?:{(): void;};
|
||||
valueWillMutate?:{(): void;};
|
||||
}
|
||||
|
||||
interface KnockoutObservableArray<T> extends KnockoutSubscribable<T[]>, KnockoutObservableProperties<T[]>,KnockoutObservableArrayFunctions<T> {
|
||||
subscribe(callback: (param : T[]) => void, target?: any, event?: string): KnockoutSubscription;
|
||||
|
||||
subscribe(callback: (param : T[]) => void, target: any, event: string): KnockoutSubscription;
|
||||
subscribe(callback: (param : T[]) => void, target: any, event: 'change'): KnockoutSubscription;
|
||||
subscribe(callback: (param : T[]) => void, target: any, event: 'beforeChange'): KnockoutSubscription;
|
||||
|
||||
subscribe(callback: (changes : KnockoutArrayChange<T>[]) => void, target: any, event: string): KnockoutSubscription;
|
||||
subscribe(callback: (changes : KnockoutArrayChange<T>[]) => void, target: any, event: 'arrayChange'): KnockoutSubscription;
|
||||
|
||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutObservableArray<T>;
|
||||
}
|
||||
|
||||
@@ -93,14 +111,8 @@ interface KnockoutObservableStatic {
|
||||
<T>(value?: T): KnockoutObservable<T>;
|
||||
}
|
||||
|
||||
interface KnockoutObservable<T> extends KnockoutSubscribable<T>, KnockoutObservableFunctions<T> {
|
||||
(): T;
|
||||
(value: T): void;
|
||||
|
||||
peek(): T;
|
||||
valueHasMutated?:{(): void;};
|
||||
valueWillMutate?:{(): void;};
|
||||
|
||||
interface KnockoutObservable<T> extends KnockoutSubscribable<T>, KnockoutObservableProperties<T>, KnockoutObservableFunctions<T> {
|
||||
subscribe(callback: (newValue : T) => void, target?: any, event?: string): KnockoutSubscription;
|
||||
extend(requestedExtenders: { [key: string]: any; }): KnockoutObservable<T>;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user