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