diff --git a/eqjs/eqjs.d.ts b/eqjs/eqjs.d.ts
index b9a39856e..9ff2d3468 100644
--- a/eqjs/eqjs.d.ts
+++ b/eqjs/eqjs.d.ts
@@ -5,12 +5,13 @@
declare var eqjs: eqjs.EqjsStatic;
- // Support AMD require
+// Support AMD require
declare module 'eqjs' {
export = eqjs;
}
declare module eqjs {
+ type AvailableElementType = HTMLElement|HTMLElement[]|NodeList|JQuery;
interface EqjsStatic {
@@ -29,7 +30,7 @@ declare module eqjs {
* @param nodes
* @param callback function to use as a callback once query and nodeWrites have finished
*/
- query(nodes: HTMLElement[]|JQuery, callback?: Function): void;
+ query(nodes: AvailableElementType, callback?: Function): void;
/**
* Refreshes the list of nodes for eqjs to work with
@@ -41,14 +42,14 @@ declare module eqjs {
* @param obj e.g. "small: 380, medium: 490, large: 600"
* @returns {}
*/
- sortObj(obj: string): EqjsKeyValuePair;
+ sortObj(obj: string): EqjsKeyValuePair[];
/**
* Runs through all nodes and writes their eq status.
* @param nodes An array or NodeList of nodes to query
* @returns {}
*/
- nodeWrites(nodes?: HTMLElement[]|JQuery);
+ nodeWrites(nodes?: AvailableElementType): void;
}
interface EqjsKeyValuePair {
@@ -57,9 +58,9 @@ declare module eqjs {
}
interface EqjsNodesTable {
- [key: string]: HTMLElement;
+ [index: number]: HTMLElement;
}
-
+
}
// Support jQuery selectors.
diff --git a/eqjs/eqjs.tests.ts b/eqjs/eqjs.tests.ts
new file mode 100644
index 000000000..1113604f2
--- /dev/null
+++ b/eqjs/eqjs.tests.ts
@@ -0,0 +1,28 @@
+///
+///
+
+var nodes = document.getElementsByClassName(".test-container");
+var node = document.getElementById("#test-container");
+var $nodes = $(".selector");
+
+eqjs.query(node);
+eqjs.query(node, () => { });
+eqjs.query(nodes);
+eqjs.query($nodes);
+
+var nodesCount: number = eqjs.nodesLength;
+
+eqjs.refreshNodes();
+
+eqjs.nodeWrites();
+eqjs.nodeWrites(node);
+eqjs.nodeWrites(nodes);
+eqjs.nodeWrites($nodes);
+
+var sortMap = eqjs.sortObj("small: 380, medium: 490, large: 600");
+var sortFirstKey = sortMap[0].key;
+var sortFirstValue = sortMap[0].value;
+
+var nodesMap = eqjs.nodes;
+
+var ele: HTMLElement = nodesMap[1];