diff --git a/jsurl/jsurl-tests.ts b/jsurl/jsurl-tests.ts
new file mode 100644
index 000000000..a10d0a763
--- /dev/null
+++ b/jsurl/jsurl-tests.ts
@@ -0,0 +1,80 @@
+///
+
+interface UModel extends UrlQuery {
+ a: any;
+ b: string;
+}
+
+interface U2Model extends UrlQuery {
+ a: any;
+}
+
+interface U3Model extends UrlQuery {
+ foo: string;
+}
+
+var u = new Url(); // curent document URL will be used
+// or we can instantiate as
+var u2 = new Url("http://example.com/some/path?a=b&c=d#someAnchor");
+// it should support relative URLs also
+var u3 = new Url("/my/site/doc/path?foo=bar#baz");
+
+// get the value of some query string parameter
+alert(u2.query.a);
+// or
+alert(u3.query["foo"]);
+
+// Manupulating query string parameters
+u.query.a = [1, 2, 3]; // adds/replaces in query string params a=1&a=2&a=3
+u.query.b = 'woohoo'; // adds/replaces in query string param b=woohoo
+
+if (u.query.a instanceof Array) { // the way to add a parameter
+ u.query.a.push(4); // now it's "a=1&a=2&a=3&a=4&b=woohoo"
+}
+
+else { // if not an array but scalar value here is a way how to convert to array
+ u.query.a = [u.query.a];
+ u.query.a.push(8)
+}
+
+
+// The way to remove the parameter:
+delete u.query.a
+// or:
+delete u.query["a"]
+
+// If you need to remove all query string params:
+u.query.clear();
+alert(u);
+
+// Lookup URL parts:
+alert(
+ 'protocol = ' + u.protocol + '\n' +
+ 'user = ' + u.user + '\n' +
+ 'pass = ' + u.pass + '\n' +
+ 'host = ' + u.host + '\n' +
+ 'port = ' + u.port + '\n' +
+ 'path = ' + u.path + '\n' +
+ 'query = ' + u.query + '\n' +
+ 'hash = ' + u.hash
+);
+
+// Manipulating URL parts
+u.path = '/some/new/path'; // the way to change URL path
+u.protocol = 'https' // the way to force https protocol on the source URL
+
+// inject into string
+var str = 'My Cool Link';
+
+// or use in DOM context
+var a = document.createElement('a');
+a.href = u.toString();
+a.innerHTML = 'test';
+document.body.appendChild(a);
+
+// Stringify
+var su1 = u + '';
+var su2 = String(u);
+var su3 = u.toString();
+// NOTE, that usually it will be done automatically, so only in special
+// cases direct stringify is required
\ No newline at end of file
diff --git a/jsurl/jsurl.d.ts b/jsurl/jsurl.d.ts
new file mode 100644
index 000000000..cbe985851
--- /dev/null
+++ b/jsurl/jsurl.d.ts
@@ -0,0 +1,23 @@
+// Type definitions for jsurl 1.2.7
+// Project: https://github.com/Mikhus/jsurl
+// Definitions by: Alexey Gorshkov
+// Definitions: https://github.com/agorshkov23/DefinitelyTyped
+
+interface UrlQuery {
+ clear: () => void;
+}
+
+declare class Url {
+ constructor();
+ constructor(url: string);
+ query: T;
+ protocol: string;
+ user: string;
+ pass: string;
+ host: string;
+ port: string;
+ path: string;
+ hash: string;
+ href: string;
+ toString: () => string;
+}
\ No newline at end of file