diff --git a/knockout.rx/knockout.rx-tests.ts b/knockout.rx/knockout.rx-tests.ts new file mode 100644 index 0000000000..674e9bb6a4 --- /dev/null +++ b/knockout.rx/knockout.rx-tests.ts @@ -0,0 +1,12 @@ +/// + +var ax: Rx.IObservable; + +var ao = ax.toKoObservable(); + +ao(100); +ao.getSubscriptionsCount(); + +ao.toObservable(); +ao.toObservable("change"); +ao.toObservable("error"); \ No newline at end of file diff --git a/knockout.rx/knockout.rx.d.ts b/knockout.rx/knockout.rx.d.ts new file mode 100644 index 0000000000..4f44153d8c --- /dev/null +++ b/knockout.rx/knockout.rx.d.ts @@ -0,0 +1,26 @@ +// Type definitions for knockout.rx 0.1 +// Project: https://github.com/Igorbek/knockout.rx +// Definitions by: Igor Oleinikov + +/// +/// + +interface KnockoutSubscribableFunctions { + toObservable(event?: string): Rx.IObservable; + toObservable(event: string): Rx.IObservable; +} + +interface KnockoutObservableFunctions { + toObservableWithReplyLatest(): Rx.IObservable; +} + +interface KnockoutComputedFunctions { + toObservableWithReplyLatest(): Rx.IObservable; +} + +declare module Rx { + interface IObservable { + toKoSubscribable(): KnockoutSubscribable; + toKoObservable(initialValue?: T): KnockoutObservable; + } +} diff --git a/knockout/knockout.d.ts b/knockout/knockout.d.ts index 63f9938943..c3d6328360 100644 --- a/knockout/knockout.d.ts +++ b/knockout/knockout.d.ts @@ -52,10 +52,8 @@ interface KnockoutSubscription { } interface KnockoutSubscribable extends KnockoutSubscribableFunctions { - (): T; - (value: T): void; - subscribe(callback: (newValue: T) => void, target?: any, event?: string): KnockoutSubscription; + subscribe(callback: (newValue: TEvent) => void, target: any, event: string): KnockoutSubscription; extend(requestedExtenders: { [key: string]: any; }): KnockoutSubscribable; getSubscriptionsCount(): number; } @@ -70,6 +68,9 @@ interface KnockoutComputedStatic { } interface KnockoutComputed extends KnockoutSubscribable, KnockoutComputedFunctions { + (): T; + (value: T): void; + peek(): T; dispose(): void; isActive(): boolean; @@ -92,6 +93,9 @@ interface KnockoutObservableStatic { } interface KnockoutObservable extends KnockoutSubscribable, KnockoutObservableFunctions { + (): T; + (value: T): void; + peek(): T; valueHasMutated(): void; valueWillMutate(): void;