diff --git a/knockout.es5/knockout.es5-tests.ts b/knockout.es5/knockout.es5-tests.ts index f8faf95296..c51b9bc9d2 100644 --- a/knockout.es5/knockout.es5-tests.ts +++ b/knockout.es5/knockout.es5-tests.ts @@ -1,4 +1,4 @@ -/// +/// var empty = {}, obj = { a: 'string', b: 123, c: true, d: empty }, @@ -75,3 +75,12 @@ anOrder.lines.shift(); console.log(someOrderLine.subtotal == someOrderLine.getSubtotal()); // true console.log(anOrder.lines.length); // 1 + +//Array methods +anOrder.lines.remove(someOrderLine); +anOrder.lines.removeAll([someOrderLine]); +anOrder.lines.removeAll(); + +anOrder.lines.destroy(someOrderLine); +anOrder.lines.destroyAll([someOrderLine]); +anOrder.lines.destroyAll(); \ No newline at end of file diff --git a/knockout.es5/knockout.es5.d.ts b/knockout.es5/knockout.es5.d.ts index c546e1bebb..868655545e 100644 --- a/knockout.es5/knockout.es5.d.ts +++ b/knockout.es5/knockout.es5.d.ts @@ -8,7 +8,22 @@ interface KnockoutStatic { track(obj: any, propertyNames?: Array): any; defineProperty(obj: any, propertyName: string, evaluator: Function): any; - defineProperty(obj: any, propertyName: string, options: { get: () => any; set?: (value: any) => void; }): any; + defineProperty(obj: any, propertyName: string, options: KnockoutDefinePropertyOptions): any; getObservable(obj: any, propertyName: string): KnockoutObservable; valueHasMutated(obj: any, propertyName: string): void; +} + +interface KnockoutDefinePropertyOptions { + get(): any; + set?(value: any): void; +} + +interface Array { + remove(item): T[]; + removeAll(items: T[]): T[]; + removeAll(): T[]; + + destroy(item: T): void; + destroyAll(items: T[]): void; + destroyAll(): void; } \ No newline at end of file