diff --git a/knockout.projections/knockout.projections-tests.ts b/knockout.projections/knockout.projections-tests.ts index d8d6c8dcd..138d36946 100644 --- a/knockout.projections/knockout.projections-tests.ts +++ b/knockout.projections/knockout.projections-tests.ts @@ -54,3 +54,11 @@ var complexItems2 = sourceItems.map({ }; } }); + +// Test disposal + +evenSquares.dispose(); + +complexItems.dispose(); + +complexItems2.dispose(); diff --git a/knockout.projections/knockout.projections.d.ts b/knockout.projections/knockout.projections.d.ts index a9ff8b5f3..e1443478a 100644 --- a/knockout.projections/knockout.projections.d.ts +++ b/knockout.projections/knockout.projections.d.ts @@ -5,18 +5,21 @@ /// +interface KnockoutMappedObservableArray extends KnockoutObservableArray, KnockoutSubscription { +} + interface KnockoutObservableArrayFunctions { map(mappingOptions: { mappingWithDisposeCallback: (value: T) => { mappedValue: TResult; dispose: () => void; }; - }): KnockoutObservableArray; + }): KnockoutMappedObservableArray; map(mappingOptions: { mapping: (value: T) => TResult; disposeItem?: (mappedItem: TResult) => void; - }): KnockoutObservableArray; - map(mappingOptions: (value: T) => TResult): KnockoutObservableArray; + }): KnockoutMappedObservableArray; + map(mappingOptions: (value: T) => TResult): KnockoutMappedObservableArray; - filter(predicate: (value: T) => boolean): KnockoutObservableArray; + filter(predicate: (value: T) => boolean): KnockoutMappedObservableArray; }